牛客网 SQL实战 4 查找所有已经分配部门的员工#
目录#
1. 题目描述#
1.1. Time Limit#
C/C++ 1秒,其他语言2秒
1.2. Memory Limit#
C/C++ 32M,其他语言64M
1.3. Problem Description#
查找所有已经分配部门的员工的last_name和first_name以及dept_no(请注意输出描述里各个列的前后顺序)
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`));
1.4. Output#
last_name | first_name | dept_no |
---|---|---|
Facello | Georgi | d001 |
省略 | 省略 | 省略 |
Piveteau | Duangkaew | d006 |
1.5. Source#
2. 题解#
可以使用JOIN
查询,也可以在FROM
后面接两个表名实现 INNER JOIN
。
3. 代码#
使用JOIN
。
SELECT `last_name`, `first_name`, `dept_no`
FROM `dept_emp` as t1
JOIN `employees` as t2
ON t1.emp_no = t2.emp_no;
使用逗号连接加WHERE
语句。
SELECT `last_name`, `first_name`, `dept_no`
FROM `dept_emp` as t1, `employees` as t2
WHERE t1.emp_no = t2.emp_no;
使用逗号连接加ON
语句,Mysql
中不能使用下面这个语句,SQLite
中可以。
SELECT `last_name`, `first_name`, `dept_no`
FROM `dept_emp` as t1, `employees` as t2
ON t1.emp_no = t2.emp_no;
联系邮箱:curren_wong@163.com
CSDN:https://me.csdn.net/qq_41729780
知乎:https://zhuanlan.zhihu.com/c_1225417532351741952
公众号:复杂网络与机器学习
欢迎关注/转载,有问题欢迎通过邮箱交流。