作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑这两个相似的 SQL
(ON 子句中的条件)
select t1.field1, t2.field1
from
table1 t1 inner join table2 t2 on t1.id = t2.id and t1.boolfield = 1
select t1.field1, t2.field1
from
table1 t1 inner join table2 t2 on t1.id = t2.id
where t1.boolfield = 1
最佳答案
对于 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
Select *
From tbl1
LEFT JOIN tbl2 on tbl1.id=tbl2.id
WHERE tbl2.boolfield=1
关于sql - 在内连接的 ON 子句中放置条件与主查询的 where 子句中是否存在逻辑差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11567318/
我是一名优秀的程序员,十分优秀!