数据库 join的解析

来源:互联网 发布:java工程师认证 编辑:程序博客网 时间:2024/05/30 05:41
关于左连接和右连接总结:
左连接where只影向右表,右连接where只影响左表。

(1) left join  

select * from TABLE1 Left JoinTABLE2 where TABLE1.ID = TABLE2.ID

左连接后的检索结果是显示TABLE1的所有数据和TABLE2中满足where 条件的数据。

简言之 Left Join影响到的是右边的表

左边的为主表,右边为从属表
例如:select a.cust_id ,b.order_date,b.tot_ant
      from customer a left join sales b
      on (a.cust_id =b.cust_id and b.order_date>''1996/10/15'')

也可以写为

select a.cust_id,b.order_date,b.tot_ant
      from custom a 
      left join (select * from sales where order_date>''1996/10/15'') b
     on a.cust_id =b.cust_id


(2) right join 

select * fromTABLE1 Right Join TABLE2 whereTABLE1.ID =TABLE2.ID

检索结果是TABLE2的所有数据和TABLE1中满足where 条件的数据。

简言之 Right Join影响到的是左边的表。
左边的表为从属表,右边的表为主表 
inner join

select * FROM tbl1 INNER JOIN tbl2 ON tbl1.ID = tbl2.ID

功能和 select * from tbl1,tbl2 where tbl1.id=tbl2.id相同。
原创粉丝点击