日期:2014-05-19  浏览次数:20610 次

inner join and left join 区别
select   *   from   a   left   join   b   on   a.id=b.id  

select   *   from   a   inner   join   b   on   a.id=b.id


a的记录比b多!

前一条我知道,b.id   在a里没有的话,记录就为NULL、
那第二条的记录是等于以b记录吗?

------解决方案--------------------
第一条是查出左表即a表不符合条件显示为null的集合
第二条是查找出所有a表b表符合条件的,
所以第一条语句比第二条语句多一行

------解决方案--------------------
left outer join ,左表中有,右表中不符合,右表值为null
inner join ,左表中有,右表中没有,不显示。
------解决方案--------------------
Inner Join
Inner Join 逻辑运算符返回满足第一个(顶端)输入与第二个(底端)输入联接的每一行。


Left Outer Join
Left Outer Join 逻辑运算符返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入中的行。第二个输入中的非匹配行作为空值返回。如果 Argument 列内不存在任何联接谓词,则每行都是一个匹配行。

--那第二条的记录是等于以b记录吗?
这个没看明白什么意思,inner join 是只返回匹配的记录