INNER JOIN和COMMA之间的区别

时间:2017-08-31 14:43:35

标签: sql

我在下面的两个查询和相同的执行计划中得到相同的结果,有什么区别吗?或者只是我更喜欢写我的查询?

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

1 个答案:

答案 0 :(得分:4)

一个区别是第一个选项通过在where子句中表达连接条件来隐藏意图。

读取连接条件的第二个选项对于读取查询的用户更清楚。它显示了查询的确切意图。

就表现或任何其他差异而言,不应该有任何。两个查询都应返回完全相同的结果,并在大多数RDBMS下执行相同的操作。

正如@Tim Biegeleisen在评论中所说:

  

自ANSI-92 SQL标准

起,不推荐使用逗号版本