我还在学习SQL。我以两种不同的方式完成了类似的查询,并想知道哪个更好,为什么。哪些SQL查询更好,为什么?
UPDATE R
SET R.something = 1
FROM Table1 R
JOIN Table2 U
ON R.value1 = U.value2
WHERE
U.value3 BETWEEN 1 AND 5
或
UPDATE R
SET R.something = 1
WHERE R.value1 IN
(SELECT U.value2
FROM U
WHERE
U.value3 BETWEEN 1 AND 5
)
你检查过查询执行计划吗? – Taryn 2012-07-09 15:40:12
太棒了!不知道执行计划。从我可以看出,他们看起来完全平等。这似乎并不正确。 – John 2012-07-09 15:43:43
优化器优化:)如果统计信息/索引类似,则语法非常不同的两个SQL语句看起来与数据库引擎类似。 – 2012-07-09 15:45:49