SQL挑战一 : 查找最晚入职员工的所有信息

Posted 夜天铭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

 








以上是关于SQL挑战一 : 查找最晚入职员工的所有信息的主要内容,如果未能解决你的问题,请参考以下文章

SQL1 查找最晚入职员工的所有信息

sql 查找最晚入职员工

1查找最晚入职员工的所有信息

MySQL 题1

SQL基础练习

SQL练习:通过练习写出有意思有用的sql