显式vs隐式SQL连接
在显式vs隐式内连接中是否存在效率差异?例如:
SELECT * FROM
table a INNER JOIN table b
ON a.id = b.id;
与
SELECT a.*, b.*
FROM table a, table b
WHERE a.id = b.id;
dmanxiii asked 2019-01-30T02:34:34Z
11个解决方案
117 votes
就个人而言,我更喜欢连接语法,因为它更清楚表格是连接的以及它们如何连接。 尝试比较较大的SQL查询,从8个不同的表中进行选择,并在那里进行大量过滤。 通过使用连接语法,可以将表连接的部分分离到要过滤行的部分。
grom answered 2019-01-30T02:35:17Z
113 votes
性能方面,它们完全相同(至少在SQL Server中)。
PS:请注意,自SQL Server 2005以来,不推荐使用IMPLICIT OUTER JOIN语法。(仍支持问题中使用的IMPLICIT INNER JOIN语法)
“旧式”JOIN语法的弃用:只有部分事物
lomaxx answered 2019-01-30T02:34:55Z
42 votes
在MySQL 5.1.51上,两个查询都有相同的执行计划:
mysql> explain select * from table1 a inner join table2 b on a.pid = b.pid;
+----&