【发布时间】:2013-12-02 04:50:25
【问题描述】:
我来自 Postgres/MySQL 世界,所以想知道 SQL 服务器中这两个查询之间是否有区别:
SELECT e.employee_id, s.salary
FROM employees e INNER JOIN salaries s
ON e.employee_id = s.employee_id
SELECT e.employee_id, s.salary
FROM employees e, salaries s
WHERE e.employee_id = s.employee_id
【问题讨论】:
-
第二种是较旧的语法,称为隐式连接。第一个是现代的、首选的显式连接语法。它们在功能上是相同的
-
Postgres 和 MySQL(以及 Oracle 和 DB2 和 Firebird 等等)支持完全相同类型的连接。这对 SQL Server 来说没什么特别的(但要坚持使用显式连接)
-
嗯.. 猜我是老派 b/c 我一直习惯于第二个。我发现很难改掉旧习惯,所以只要我能摆脱它,我就会坚持第二个。
标签: sql sql-server