MySQL - 基础题练习题 - 查询篇(6)

数据在本专栏的第一篇博客里

本篇是连接查询,用sql92标准,下一篇是99。

开始快乐起来了,到处找表

7.1.显示所有员工的姓名、部门号和部门名称

SELECT
	e.last_name,
	e.department_id,
	d.department_name 
FROM
	departments d,
	employees e 
WHERE
	d.department_id = e.department_id;

7.2.查询90号部门员工的job_id和90号部门的location_id

SELECT
	e.job_id,
	d.location_id 
FROM
	employees e,
	departments d 
WHERE
	e.department_id = d.department_id 
	AND d.department_id = 90;

7.3.选择所有有奖金的员工的last_name,department_name,location_id,city

SELECT
	e.last_name,
	d.department_name,
	d.location_id,
	l.city 
FROM
	departments d,
	employees e,
	locations l 
WHERE
	d.department_id = e.department_id 
	AND d.location_id = l.location_id 
	AND e.commission_pct IS NOT NULL; #有奖金的

7.4.选择cityToronto工作的员工的last_name,job_id,department_id,department_name

SELECT
	e.last_name,
	e.job_id,
	d.department_id,
	d.department_name 
FROM
	departments d,
	employees e,
	locations l 
WHERE
	d.department_id = e.department_id 
	AND l.city = 'Toronto' 
	AND d.location_id = l.location_id;

7.5.查询每个工种,每个部门的部门名、工种名和最低工资

SELECT
	department_name,
	job_title,
	MIN( salary ) '最低工资' 
FROM
	employees e,
	departments d,
	jobs j 
WHERE
	e.department_id = d.department_id 
	AND e.job_id = j.job_id 
GROUP BY
	department_name,
	job_title;

7.6.查询每个国家下的部门个数大于2的国家编号

#有一点点难
SELECT
	country_id,
	count(*) 
FROM
	departments d,
	locations l 
WHERE
	l.location_id = d.location_id 
GROUP BY
	country_id 
HAVING
	count(*)> 2;

7.7.选择指定员工的姓名、员工号,以及他的管理者的姓名和员工号

结果类似下面的格式:
employees	Emp#    manager Mgr#
kochhar 	101		king	100

#代码如下:
#自连接,有一点点绕
SELECT
	e.last_name employees,
	e.employee_id 'Emp#',
	m.last_name manager,
	m.manager_id 'Mgr#' 
FROM
	employees e, #自己的员工表
	employees m  #自己的管理表
WHERE
	e.manager_id = m.employee_id;

猜你喜欢

转载自blog.csdn.net/weixin_41661059/article/details/106884005