首选以下哪个查询?为什么?他们完成了同样的事情。
select e1.Name from Employee e1, Employee e2
where e1.ManagerId = e2.Id and e1.Salary > e2.Salary
或
select e1.Name from Employee e1 join Employee e2
on e1.ManagerId = e2.Id and e1.Salary > e2.Salary
我听说使用JOIN
更好,但似乎稍慢。
答案 0 :(得分:0)
在这种情况下它们是相同的 。添加LEFT
,所有投注均已关闭。
通过对每个人执行此操作,您可以发现它们完全相同:
EXPLAIN EXTENDED SELECT ...;
SHOW WARNINGS;
您将看到一个变体被转换为看起来与另一个变体相同。
由于两个公式的语义相同(没有LEFT
),优化程序会对它们进行相同的处理。
但请使用JOIN ... ON
。