写在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'这一条件,所以不会出现在结果集

参考文档:

[1]http://blogold.chinaunix.net/u/29553/showart_435398.html

相关文章:

  • 2022-12-23
  • 2021-06-15
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
猜你喜欢
  • 2022-12-23
  • 2021-08-01
  • 2021-03-28
  • 2021-04-23
  • 2021-10-20
  • 2021-05-31
  • 2021-09-22
相关资源
相似解决方案