0
有如下表Employee
:在一张桌子上操作时需要内部连接吗?
我需要找出谁比他们的经理赚取更多的员工和我想出两个方法:
SELECT a.Name AS Employee FROM Employee a, Employee b WHERE a.Salary > b.Salary AND a.ManagerId = b.Id;
SELECT a.Name AS Employee FROM Employee a INNER JOIN Employee b ON a.Salary > b.Salary AND a.ManagerId = b.Id;
两者都工作w并且有接近的速度。
他们之间有什么区别?谢谢。
Borh查询是相同的,但第一个使用现在已经过时预ANSI-92连接sintax(我称之为sintax而不是语法,因为本网站上的许多权威认为将连接条件放入WHERE子句中是一种罪过)。 –
但我认为,两者都是正确的,但仅适用于简单的问题,对于大型查询,Join会更好,不仅可以使用过滤器,而且可以以有效方式加入表格,但'Where'仅用于过滤器。 –
他们是一样的。然而,最喜欢的语法是:SELECT staff.Name FROM Employee AS staff INNER JOIN Empolyee AS manager on staff.ManagerId = manager.Id WHERE staff.Salary> manager.Salary – SIDU