前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL练习四:查询已经分配部门员工的姓名和部门编号

MySQL练习四:查询已经分配部门员工的姓名和部门编号

原创
作者头像
Mandy的名字被占用了
修改2021-09-22 11:15:14
1.5K0
修改2021-09-22 11:15:14
举报

题目:

有一个员工employees表简况如下:

2DD8A8D108E674BCB32D6E32B03492C1
2DD8A8D108E674BCB32D6E32B03492C1

有一个部门表,dept_emp简况如下:

4BF7C729BECEE5D9215DF0C0B22855A0
4BF7C729BECEE5D9215DF0C0B22855A0

请你查找所有已经分配部门的员工的last_name和first_name以及dept_no,未分配的部门的员工不显示,以上例子如下:

92EDD0ECE3222E00AE2F555AC9153034
92EDD0ECE3222E00AE2F555AC9153034

数据表:

表结构

代码语言:txt
复制
drop table if exists  `employees` ; 
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`));

数据:

insert语句

代码语言:txt
复制
INSERT INTO dept_emp VALUES(10001,'d001','1986-06-26','9999-01-01');
INSERT INTO dept_emp VALUES(10002,'d002','1996-08-03','9999-01-01');
INSERT INTO employees VALUES(10001,'1953-09-02','Georgi','Facello','M','1986-06-26');
INSERT INTO employees VALUES(10002,'1964-06-02','Bezalel','Simmel','F','1985-11-21');
INSERT INTO employees VALUES(10003,'1959-12-03','Parto','Bamford','M','1986-08-28');
INSERT INTO employees VALUES(10004,'1954-05-01','Chirstian','Koblick','M','1986-12-01');

解题思路:

  1. 此题是查询已经分配部门的员工信息,我们则直接去部门员工信息表查找到那些员工已经分配了部门。
  2. 查询到也已经分配了部门的员工编号,我们则根据编号直接到员工信息表中查找员工信息。
  3. 由于是查询已经分配了部门信息的员工,部分员工也没有分配部门,则不查询出来。我们则使用inner连接方式。这里也可以使用left连接方式。

参考答案:

  1. inner join连接方式。
代码语言:txt
复制
select b.last_name, b.first_name, a.dept_no from dept_emp a 
inner join employees b
on a.emp_no = b.emp_no;
  1. left join连接方式。
代码语言:txt
复制
select b.last_name, b.first_name, a.dept_no from dept_emp a 
left join employees b
on a.emp_no = b.emp_no;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档