T-SQL中的连接语法有什么区别

时间:2015-06-17 19:50:19

标签: sql sql-server performance tsql

这是我的SQL查询:

SELECT
   last_name,
   department_name
FROM
   employees e,
   departments d
WHERE
   e.department_id = d.department_id;

SELECT
   last_name,
   department_name
FROM
   employees e INNER JOIN
   departments d ON e.department_id = d.department_id;

有什么区别?
哪个是 SQL Server 中更好更快的查询?

2 个答案:

答案 0 :(得分:6)

  

有什么区别?

AFAIK,两者都在INNER JOIN,第一个使用Implicit JOIN syntax而第二个使用explicit join syntax

我不希望它们之间存在任何性能差异,但使用explicit join syntax的第二种查询方式比第一种方式更值得推荐,因为它易于阅读并且清除了这个想法你正在尝试表演。此外,第一种写作风格是旧式连接语法。

答案 1 :(得分:3)

在绩效方面或结果方面应该没有区别。使用SQL Server,查询优化器实际上将您的查询转换为最佳找到的执行计划。你们两个查询都会以同一个执行计划结束。

如果使用SQL Server,请在启用“显示执行计划”选项的情况下运行它们。

这将告诉你他们如何被执行(如果有任何差异)和相对的性能差异。

正如其他人所说,一个是首选,但在语法上而不是性能方面。