【发布时间】:2011-06-23 21:05:30
【问题描述】:
与 WHERE 子句相反,是否有任何论点(性能方面)在连接中进行过滤?
例如,
SELECT blah FROM TableA a
INNER JOIN TableB b
ON b.id = a.id
AND b.deleted = 0
WHERE a.field = 5
相对
SELECT blah FROM TableA a
INNER JOIN TableB b
ON b.id = a.id
WHERE a.field = 5
AND b.deleted = 0
我个人更喜欢后者,因为我觉得过滤应该在过滤部分(WHERE)进行,但是这两种方法有什么性能或其他原因吗?
【问题讨论】:
-
WHERE Clause vs ON when using JOIN 的副本(是的,这涉及时间旅行,但乍一看有更好的答案)
标签: sql-server inner-join