zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

【MySQL】多表查询的分类1:等值连接和非等值连接

mysql连接 查询 分类 多表
2023-09-11 14:19:28 时间


多表查询的分类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 如图所示:

image-20220702083358269

员工表 employees 如下图所示:

image-20220702084035508

【分析】员工表 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`;

查询结果:

image-20220702083837006