我知道有类似的问题(如SQL Filter criteria in join criteria or where clause which is more efficient),但我记得SQL
函数很特殊。也许?所以基本上哪个更正确/更高效?
SELECT *
FROM [DBOne].[dbo].[SomeData] SD
INNER JOIN [DBTwo].[DBOne].[SomeOtherData_GetALL]() SOD ON SD.[DataID] = SOD.[DataID]
OR
SELECT *
FROM [DBOne].[dbo].[SomeData] SD
WHERE SD.[DataID] IN (SELECT [DataID] FROM [DBTwo].[DBOne].[SomeOtherData_GetALL]())
答案 0 :(得分:1)
我通常使用WHERE EXISTS而不是加入。有关说明,请参阅here。
答案 1 :(得分:0)
基本上就像问JOIN
vs SUB QUERY
一样,如果你关注性能,我建议使用JOIN
代替使用WHERE IN
子句,你可以如果使用SQL的执行计划,请查看性能的差异。
要进一步了解,您可以阅读以下文章:Join vs. sub-query
希望得到这个帮助。