# 等值连接
# 1 查询员工名对应的部门名
SELECT
emp.last_name,
dep.department_name
FROM
employees emp,
departments dep
WHERE
emp.department_id = dep.department_id;
# 2 查询员工名、工种名、工种号
SELECT
emp.last_name,
job.job_title,
job.job_id
FROM
jobs job,
employees emp
WHERE
job.job_id = emp.job_id # 3 查询有奖金的员工名和部门名
SELECT
emp.last_name,
dep.department_name
FROM
employees emp,
departments dep
WHERE
emp.department_id = dep.department_id
AND emp.commission_pct IS NOT NULL;
# 4 查询城市名中第二个字符是‘O’的部门
SELECT
dep.department_name,
loc.city
FROM
locations loc,
departments dep
WHERE
loc.location_id = dep.location_id
AND loc.city LIKE '_o%';
# 5 查询每个城市的部门个数
SELECT
COUNT(1),
loc.city
FROM
locations loc,
departments dep
WHERE
loc.location_id = dep.location_id
GROUP BY
loc.city;
# 6 查询有奖金的每个部门的部门名和部门领导编号和该部门的最低工资
SELECT
dep.department_name,
dep.manager_id,
MIN(emp.salary)
FROM
employees emp,
departments dep
WHERE
emp.department_id = dep.department_id
AND emp.commission_pct IS NOT NULL
GROUP BY
emp.department_id;
# 7 查询每个工种的工种名和员工个数,并且按员工个数降序
SELECT
job.job_title,
COUNT(*)
FROM
jobs job,
employees emp
WHERE
job.job_id = emp.job_id
GROUP BY
emp.job_id
ORDER BY
COUNT(1) DESC;
# 8 查询员工名、部门名和所在的城市
SELECT
emp.last_name,
dep.department_name,
loc.city
FROM
employees emp,
departments dep,
locations loc
WHERE
emp.department_id = dep.department_id
AND dep.location_id = loc.location_id;
2 非等值连接
# 非等值连接
# 1 查询员工的工资和工资级别
SELECT
emp.last_name,
gra.grade_level,
emp.salary
FROM
employees emp,
job_grades gra
WHERE
emp.salary BETWEEN gra.lowest_sal
AND gra.highest_sal;
3 自连接
# 自连接
# 1 查询员工名和上级领导名称
SELECT
emp.last_name emp,
man.last_name man
FROM
employees emp,
employees man
WHERE
emp.manager_id = man.employee_id;