【发布时间】:2020-04-05 21:52:45
【问题描述】:
有什么区别
select t.*,
a.age
from t
left join a
on t.ID = a.ID and a.column > 10
和
select t.*,
a.age
from t
left join a
on t.ID = a.ID
where a.column > 10
?
具体来说,当我将条件放在 AND 内与 WHERE 内加入主表的表上时有什么区别?
【问题讨论】:
-
好问题。创建表,添加一些示例数据并运行查询!
-
第二个实际上是内部连接
-
重要的区别在于
LEFT JOIN条件下,您在将两个表连接在一起之前过滤掉不匹配的行,从而只连接到匹配的行 -
您错过了示例中的
FROM:) -
这能回答你的问题吗? SQL join: where clause vs. on clause
标签: sql left-join where-clause