「你所不知道的Mysql」第九篇 超過經理收入的員工

程序員的成長,並不是工作年限越長越厲害,工作一段時間之後,很多事情都開始變成了重複工作,對於能力而言,幾乎毫無提高。

這個時候需要的是跳出自己的舒適區,去挑戰各種各樣的問題。所以我堅持去尋找一些題目去鍛鍊自己。1萬小時理論中,不是重複1萬小時就能變成專家,而是不斷的挑戰,這樣才能成為這個領域的專家。

題目正文

Employee 表包含所有員工,他們的經理也屬於員工。每個員工都有一個 Id,此外還有一列對應員工的經理的 Id。

+----+-------+--------+-----------+
| Id | Name | Salary | ManagerId |
+----+-------+--------+-----------+
| 1 | Joe | 70000 | 3 |
| 2 | Henry | 80000 | 4 |
| 3 | Sam | 60000 | NULL |
| 4 | Max | 90000 | NULL |
+----+-------+--------+-----------+

給定 Employee 表,編寫一個 SQL 查詢,該查詢可以獲取收入超過他們經理的員工的姓名。在上面的表格中,Joe 是唯一一個收入超過他的經理的員工。

+----------+
| Employee |
+----------+
| Joe |
+----------+
「你所不知道的Mysql」第九篇 超過經理收入的員工

解題思路

利用join操作,通過managerid和id做inner join之後,同一列的在加上salary的比較即可。

相對比較簡單,直接給出答案供大家參考。

解答

SELECT
	e1. NAME as Employee
FROM
	employee e1
JOIN employee e2 ON e1.ManagerId = e2.Id
WHERE
	e1.Salary > e2.Salary;


分享到:


相關文章: