牛客:資料庫實戰---1---查詢最晚入職員工的所有資訊、查詢入職員工時間排名倒數第三的員工所有資訊
阿新 • • 發佈:2018-11-24
1、查詢最晚入職員工的所有資訊
CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
SELECT * FROM employees ORDER BY hire_date DESC LIMIT 1;
limit關鍵字用法:https://blog.csdn.net/BlackPlus28/article/details/83057392
SELECT * FROM employees WHERE hire_date = (SELECT MAX(hire_date) FROM employees);
簡單想,上面兩種方法都可以解決的。但limit查詢有侷限性。但使用limit方法查詢只能查出最後一條資料,但要是最後一天入職多員工,就會出現問題。因此使用子查詢更為合理,先將入職日期最大的全部查詢來作為條件再次查詢就可以。
2、查詢入職員工時間排名倒數第三的員工所有資訊
SELECT * FROM employees WHERE hire_date = ( SELECT DISTINCT hire_date FROM employees ORDER BY hire_date DESC LIMIT 2,1)
表結構:
查詢結果:
思路:首先要去重,不然查出來的只是員工倒數的第三個員工而已,只有去重之後,才能查出入職時間倒數第三的員工。
如果有不同看法,或者是文中寫錯的地方,麻煩大佬留言指正文章錯誤,謝謝!!!