读书人

inner join and left join 区别,该怎么

发布时间: 2012-01-02 22:40:04 作者: rapoo

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 是只返回匹配的记录

读书人网 >SQL Server

热点推荐