
多表查询的分类1:等值连接VS非等值连接
1. 等值连接
等值连接指的是,多表查询语句中的连接条件使用的是等号。例如:
SELECT employee_id, department_name
FROM employees, departments
WHERE employees.`department_id` = departments.`department_id`;
其中第3行代码,它就是连接条件,它使用了等号,故称为等值连接。
2. 非等值连接
对应地,多表查询语句中的连接条件不是使用等号的称为非等值连接。
【例子】根据员工表 employees
员工的月工资 salary
,去职级表 job_grades
中查询其对应的职级。
职级表 job_grades
如图所示:
员工表 employees
如下图所示:
【分析】员工表 employees
和职级表 job_grades
之间没有相同的字段以供等值连接。唯一有关系的就是工资,那我们就可以通过非等值连接来查询这两个表。如下代码所示:
SELECT emp.employee_id, emp.last_name, jg.grade_level
FROM employees emp, job_grades jg
WHERE emp.`salary` BETWEEN jg.`lowest_sal` AND jg.`highest_sal`;
查询结果: