SQL挑戰一 : 查找最晚入職員工的所有信息


以上數據庫表:

  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`));

SQL :  查詢最晚入職員工的所有信息

此題有坑(慎重),考量的邏輯思維,有兩種查詢語法,針對不同的數據環境。

環境一:最晚入職員工只有一個人;即當天單個數據

---如果只有一人,那么選擇排序后按照條件(降序)提取(limit)第一個就可以了。  limit兩種使用方法,(limit x)第一個直接設置值,值為多少就提取多少,(limit x,y)第二個是從某個位置開始提取多少條。

 

     使用 order by(默認是升序)進行統一排,然后條件排序 desc (降序) /  asc(升序),order by 必不可少,條件在擇其一。然后用 limit 提取數據即可。

 

  select * from employees order by id(字段名) desc / asc limit x(提取數量)

 

select * from employess order by hire_date desc limit 0,1
select * from employess order by hire_date desc limit 1

 

這兩種方法是一樣的結果(只針對以上查詢條件)。當有多個數據,提取位置初始值變得時候,結果就不一樣。

 

環境二:入職最晚那一天有多個人;即當天多個數據

            使用where 條件  並且 子查詢即可,查詢字段 (max)最大值即可

select * from employess where id = (select max(hire_date) from employess)

select * from employess where hire_date = (select max(hire_date) from employess)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM