这是我的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 中更好更快的查询?
答案 0 :(得分:6)
有什么区别?
AFAIK,两者都在INNER JOIN
,第一个使用Implicit JOIN syntax
而第二个使用explicit join syntax
我不希望它们之间存在任何性能差异,但使用explicit join syntax
的第二种查询方式比第一种方式更值得推荐,因为它易于阅读并且清除了这个想法你正在尝试表演。此外,第一种写作风格是旧式连接语法。
答案 1 :(得分:3)
在绩效方面或结果方面应该没有区别。使用SQL Server,查询优化器实际上将您的查询转换为最佳找到的执行计划。你们两个查询都会以同一个执行计划结束。
如果使用SQL Server,请在启用“显示执行计划”选项的情况下运行它们。
这将告诉你他们如何被执行(如果有任何差异)和相对的性能差异。
正如其他人所说,一个是首选,但在语法上而不是性能方面。