将条件放入内部联接的ON子句与主查询的where子句之间在逻辑上有区别吗?

将条件放入内部联接的ON子句与主查询的where子句之间在逻辑上有区别吗?,第1张

将条件放入内部联接的ON子句与主查询的where子句之间在逻辑上有区别吗?

对于INNER JOIN,没有有效的区别,尽管我认为第二种选择更清洁。

对于LEFT JOIN,有很大的不同。ON子句指定将从表中选择要比较的记录,WHERe子句过滤结果。

示例1:返回tbl 1中的所有行,并将它们与tbl2中boolfield = 1的适当行进行匹配

Select *From tbl1  LEFT JOIN tbl2 on tbl1.id=tbl2.id and tbl2.boolfield=1

示例2:将仅包括tbl1中的行,其中tbl2中具有匹配行且boolfield = 1的行。它联接表,然后过滤掉不符合条件的行。

Select *From tbl1  LEFT JOIN tbl2 on tbl1.id=tbl2.idWHERe tbl2.boolfield=1


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5673892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存