且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

inner join on, left join on, right join on要详细点的介绍?内连接,左外连接,右外连接。

更新时间:2022-08-22 11:04:31

Table A 
aid   adate 
1      a1 
2      a2 
3      a3
TableB 
bid bdate 
1    b1 
2   b2 
4    b4 
两个表a,b相连接,要取出id相同的字段 
select * from a inner join b on a.aid = b.bid这是仅取出匹配的数据. 
此时的取出的是: 
1 a1 b1 
2 a2 b2 

那么left join 指: 
select * from a left join b on a.aid = b.bid 
首先取出a表中所有数据,然后再加上与a,b匹配的的数据 
此时的取出的是: 
1 a1 b1 
2 a2 b2 
3 a3 空字符 

同样的也有right join 
指的是首先取出b表中所有数据,然后再加上与a,b匹配的的数据 
此时的取出的是: 
1 a1 b1 
2 a2 b2 
4 空字符 b4

LEFT JOIN 或 LEFT OUTER JOIN。 
左向外连接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是连接列所匹配的行。

如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。


本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/archive/2012/11/09/2762744.html,如需转载请自行联系原作者