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