【发布时间】:2014-02-01 13:47:44
【问题描述】:
在外连接(在这种情况下,我们采用左外连接)如何在右侧表上添加过滤器?
SELECT s.id, i.name FROM Student s
LEFT OUTER JOIN Student_Instructor i
ON s.student_id=i.student_id
AND i.name='John'
我了解,如果过滤器位于 Student 表上,则更像是“首先获取名称为 John 的所有行并加入表”。
但我不确定过滤器是否在右侧桌子上(Student_Instructor)。如何解释过滤器i.name='John'?
谢谢
【问题讨论】:
-
取决于过滤器在 JOIN 条件或 WHERE 子句中的应用位置。
-
@user2989408 过滤器应用于 JOIN 条件,如示例所示。
-
在选择前输入 EXPLAIN 以查看查询计划
标签: sql sql-server join left-join right-join