您的位置:首页 > 数据库

LEFT JOIN(联表)的条件写在ON中和WHERE的区别

2016-11-11 09:55 513 查看


LEFT JOIN(联表)的条件写在ON中和WHERE的区别

转载自:http://www.cnblogs.com/GuominQiu/articles/1936959.html

写在ON中是作为关联的条件之一,而写在WHERE条件中,则是筛选依据之一。

比如:

SELECT * FROM A

LEFT JOIN B ON (A.ID = B.ID AND B.NAME = 'NAME')

这条语句可以将在B表找不到的数据(即A.ID在B表中找不到)都保留下来

这条如果写成:

SELECT * FROM A

LEFT JOIN B ON A.ID = B.ID

WHERE B.NAME = 'NAME'

这样的话,B表中找不到的数据就不会出来了。这是因为WHERE语句中取B.NAME,如果A的数据不在B中,那么B.NAME 为NULL,

肯定不符合B.NAME = 'NAME'这一条件,所以不会出现在结果集
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql left join where