我有这个SQL查询。它在同一个表上运行,并创建一个包含三列的数据集。我担心的是我是否应该使用'WHERE'子句或'AND'。我有这种感觉,'AND'将比'WHERE'更有效,更快。请指教。 第一个是'WHERE',第二个没有它。
SELECT DISTINCT t1.rpsrespondent AS id_num,t1.rpscontent AS PID,t2.RpsContent AS SeqNo
从表t1
INNER JOIN表t2 ON t1.rpsrespondent = t2.rpsrespondent
INNER JOIN表t3 ON t3.rpsrespondent = t1.rpsrespondent
在哪里t1.RpsQuestion ='PID'和t2.RpsQuestion ='VISITID'
AND t3.rpsquestion ='INT99'和t3.rpscontent in('36','37')
SELECT DISTINCT t1.rpsrespondent AS id_num,t1.rpscontent AS PID,t2.RpsContent AS SeqNo
从表t1
INNER JOIN表t2 ON t1.rpsrespondent = t2.rpsrespondent
AND t1.RpsQuestion ='PID'和t2.RpsQuestion ='VISITID'
INNER JOIN表t3 ON t3.rpsrespondent = t1.rpsrespondent
AND t3.rpsquestion ='INT99'和t3.rpscontent in('36','37')
答案 0 :(得分:1)
使用INNER JOIN
,如果在JOIN
或WHERE
子句中指定了谓词,则没有区别。查询在语义上是相同的,因此SQL Server优化器应生成相同(最佳)的执行计划。结果会得到相同的效果。