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
));
有两种解法:
1.按照入职时间逆序排列,选择第一行。
2.选最大值。
2.题目描述
查找入职员工时间排名倒数第三的员工所有信息
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
));
不能按照上一题的思路,用limit2,1,因为可能会有多条数据,正确思路应该是选择 入职倒数第三的时间,按照时间来选数据。
3.题目描述
查找所有已经分配部门的员工的last_name和first_name
CREATE TABLE dept_emp
(
emp_no
int(11) NOT NULL
dept_no
char(4) NOT NULL,
from_date
date NOT NULL,
to_date
date NOT NULL,
PRIMARY KEY (emp_no
,dept_no
));
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
));
已经分配的要有条件,用where来约束,写到where中更好。