多表连接
#多表查询 /* sql199标准 等值连接 ①多表等值连接的结果为多表的交集部分 ② n个连接至少需要 n-1个连接 ③一般需要为表起别名 ④可以搭配前面介绍的所有子句的使用,比如排序,分组,筛选 */ -- 1.查询有奖金的员工名,部门名 SELECT last_name,department_name,commission_pct FROM employees e,departments d WHERE e.`department_id` = d.`department_id` AND e.`commission_pct` IS NOT NULL; -- 2.查询城市中第二个字符为o的部门和城市 SELECT department_name,city FROM departments d,locations l WHERE d.`location_id` = l.`location_id` AND city LIKE '%_o%'; -- 3.查询每个城市的部门个数 SELECT COUNT(*) 个数,city FROM departments d,locations l WHERE d.`location_id` = l.`location_id` GROUP BY city; -- 4.查询出有奖金的每个部门的部门名和部门领导的领导编号和该部门的最低工资 SELECT d.department_name,d.manager_id,MIN(salary) FROM departments d,employees e WHERE d.`department_id` = e.`department_id` AND commission_pct IS NOT NULL GROUP BY d.department_name,d.manager_id; -- 查询每个员工的工种的工作名和员工的个数,并且按员工的个数降序 SELECT job_title,COUNT(*) FROM employees e ,jobs j WHERE e.`job_id` = j.`job_id` GROUP BY job_title ORDER BY COUNT(*); #实现三表连接 -- 查询员工名,部门名和所在的城市 SELECT last_name,department_name,city FROM employees e,departments d,locations l WHERE e.`department_id` = d.`department_id` AND d.`location_id` = l.`location_id` AND city LIKE '%s%';