我知道这里和互联网上已经创建了很多关于这个主题的主题。但我真的无法得到关于这两个陈述之间差异的最后一点!我的意思是,尝试和尝试我可以通过查询达到我需要的所有结果,但我真的无法完全控制刀!
我认为自己是一个非常优秀的程序员和一个非常优秀的 SQL-ista,对此我感到有点羞愧......
这是一个例子:
- 我有一个包含网站页面的表格(“web_page”)
- 带有类别(“类别”)的表格。
- 一个类别可以包含一个或多个页面,反之则不行
- 一个类别可能根本不包含任何页面
- 页面可以在网站中可见或不可见
因此,如果我想显示所有类别及其页面,我的意思是有页面和没有页面的两个类别,我必须执行以下操作:
FROM category
LEFT JOIN web_page ON ( web_page.category_id = category.category_id AND web_page.active = "Y" )
因此,如果一个类别没有页面,我会在该类别的记录上看到 web_page_id NULL。
但如果我这样做:
FROM category
LEFT JOIN web_page ON ( web_page.category_id = category.category_id )
...
WHERE web_page.active = "Y"...
我将只选择至少有一个 web_page 的类别...但是为什么呢?
这只是一个例子......我想永远理解这种差异!
谢谢你。