我想要選擇比他們的經理賺得更多的員工。我有我在下面寫的這些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
我想要選擇比他們的經理賺得更多的員工。我有我在下面寫的這些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
,你可以使用自內連接
SELECT E.*
FROM Employee E
INNER JOIN Employee M ON E.ManagerId = M.Id
WHERE E.Salary > M.Salary
閱讀關於加盟,爲您的示例:
SELECT E.*
FROM Employee E
JOIN Employee M ON E.ManagerId = M.Id
WHERE E.Salary>M.Salary;
SELECT E.Salary, M.*
FROM Employee E
inner join Mamanger M on E.ManagerId = M.Id and E.Salary > M.Salary
你的第一個查詢返回的誰管理自己的人的工資,這不是選擇「比他們的經理賺得更多的僱員」的一部分。由於E未定義,您的第二個查詢不是有效的SQL語句。 PS請參閱[this](http://stackoverflow.com/a/33952141/3404097)重新查詢。 – philipxy