【发布时间】:2018-02-09 13:48:28
【问题描述】:
我在下面的两个查询和相同的执行计划中得到相同的结果,有什么区别吗?或者这正是我更喜欢编写查询的方式?
SELECT PS.StepID,PR.ProgramID FROM ProgramSteps PS, Programs PR
WHERE PS.ProgramID = PR.ProgramID
SELECT PS.StepID,PR.ProgramID FROM ProgramSteps PS
INNER JOIN Programs PR ON PS.ProgramID = PR.ProgramID
【问题讨论】:
-
标记的重复项将进一步解释,但作为一般经验法则,您应该始终使用
JOIN而不是逗号。 -
它们生成相同的计划,但不推荐使用隐式 (
,) over 25 years ago,而显式 (JOIN) 是标准。 -
今日提示:使用现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。 -
@VictorHugoTerceros 是的,隐式
INNER JOIN仍然是,但 SQL Server 2016 根本不支持OUTER JOIN隐式语法 (*=)。 -
@Siyual - (
,) 未已被弃用。您发布了标准。我搜索了它。如果您能指出不推荐使用逗号的页面,我将不胜感激......
标签: sql