首页 > 其他 > 详细

inner join 和 left join 的 区别

时间:2014-02-25 11:32:28      阅读:239      评论:0      收藏:0      [点我收藏+]

inner join   :

The INNER JOIN keyword selects all rows from both tables as long as there is a match between the columns in both tables.

bubuko.com,布布扣

 

left join :

The LEFT JOIN keyword returns all rows from the left table (table1), with the matching rows in the right table (table2). The result is NULL in the right side when there is no match.

bubuko.com,布布扣

 

以 sql server NorthWind 数据库为例 :   如果用  inner join

SELECT Customers.CompanyName, Orders.OrderID
FROM Customers
INNER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CompanyName;

得到

Alfreds Futterkiste            10643
Alfreds Futterkiste            10692
Alfreds Futterkiste            10702
Alfreds Futterkiste            10835
Alfreds Futterkiste            10952
Alfreds Futterkiste            11011
Ana Trujillo Emparedados y helados    10308
Ana Trujillo Emparedados y helados    10625
Ana Trujillo Emparedados y helados    10759
Ana Trujillo Emparedados y helados    10926
Antonio Moreno Taquería          10365
Antonio Moreno Taquería          10507
Antonio Moreno Taquería          10535
Antonio Moreno Taquería          10573
Antonio Moreno Taquería          10677
Antonio Moreno Taquería          10682

............    共830 条记录  ,意思是查出所有  有销售记录的customer 及其 所有的orderID

 

如果用  left  join

SELECT Customers.CompanyName, Orders.OrderID
FROM Customers
left JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CompanyName;

 

会得到     832 条记录  ,  比 inner join 多2条是因为: 在customer表中, 有2个customer 并无销售order , 但因为是left join ,

这两个customer 也被包括在结果集之中。

 

left join 与 left outer join 无区别 , 是后者的简写 。

inner join 和 left join 的 区别

原文:http://www.cnblogs.com/lthxk-yl/p/3564523.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!