2016-10-10 94 views
0

我想要選擇比他們的經理賺得更多的員工。我有我在下面寫的這些SQL語句,但我怎樣才能將這些語句合併爲一個語句?將2條SQL語句合併爲1

SELECT E.Salary 
FROM Employee E 
WHERE E.ManagerId = E.Id 

SELECT * 
FROM Employee M 
WHERE M.Salary > E.Salary AND M.ManagerId != M.Id 
+0

你的第一個查詢返回的誰管理自己的人的工資,這不是選擇「比他們的經理賺得更多的僱員」的一部分。由於E未定義,您的第二個查詢不是有效的SQL語句。 PS請參閱[this](http://stackoverflow.com/a/33952141/3404097)重新查詢。 – philipxy

回答

2

,你可以使用自內連接

SELECT E.* 
FROM Employee E 
INNER JOIN Employee M ON E.ManagerId = M.Id 
WHERE E.Salary > M.Salary 
1

閱讀關於加盟,爲您的示例:

SELECT E.* 
FROM Employee E 
    JOIN Employee M ON E.ManagerId = M.Id 
WHERE E.Salary>M.Salary; 
3
SELECT E.Salary, M.* 
FROM Employee E 
inner join Mamanger M on E.ManagerId = M.Id and E.Salary > M.Salary