2

可能重复:
JOIN 或 WHERE 中的条件

以下 2 个查询是否相同?

SELECT u.*
FROM User u
    INNER JOIN Sales s ON (u.userId = s.userId)
WHERE
u.active = 1 AND
s.amount > 0 AND
s.status = 1 

相对:

SELECT u.*
FROM User u
    INNER JOIN Sales s ON 
        (u.userId = s.userId AND s.amount > 0 and s.status=1)
WHERE
u.active = 1

这两个查询在结果集方面总是相同的吗?性能考虑?

4

1 回答 1

2

SQL Server 查询优化器足够聪明,可以理解这将做同样的事情,因此他将生成相同的执行计划。这意味着您将获得相同的性能。为了确保您可以查看执行计划并进行比较。

查看执行计划基础知识

于 2012-10-30T18:22:10.113 回答