哪个更适合SQL函数,Join或Where子句?

时间:2015-10-08 02:41:36

标签: sql sql-server function

我知道有类似的问题(如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]())

2 个答案:

答案 0 :(得分:1)

我通常使用WHERE EXISTS而不是加入。有关说明,请参阅here

答案 1 :(得分:0)

基本上就像问JOIN vs SUB QUERY一样,如果你关注性能,我建议使用JOIN代替使用WHERE IN子句,你可以如果使用SQL的执行计划,请查看性能的差异。

要进一步了解,您可以阅读以下文章:Join vs. sub-query

希望得到这个帮助。