我使用的是Navicat图形管理工具首先选择一个数据库创建表,主要创建3个表并加入数据
1.departments
2.employees
3.locations
等值连接
我们以employees和departments两表为例可以发现其中有相同列department_id
我们可以使用此条件进行等值连接
比如我们需要查询员工所属部门的名称但我们的员工表无部门名称但部门表有部门名称这时候我们就需要进行等值连接并将查询员工所属部门的名称查询出来
SELECT
employees
.last_name,
employees
.department_id,
departments
.department_name
FROM
employees,departments
WHERE
employees
.department_id
= departments
.department_id
;

我们需要注意的是区分重复的列名,当我们有多个表相同列时,必须加上表名前缀
在不同表中具有相同列名的列可以用 表名 加以区分。如上代码所示
拓展
使用表的别名
使用别名可以简化查询。
列名前使用表名前缀可以提高查询效率。
SELECT
e
.employee_id
, e
.last_name
, e
.department_id
,d
.department_name
FROM
employees e , departments d
WHERE
e
.department_id
= d
.department_id
;
当我们连接两个表但无等值,可通过一个中间表进行等值连接
如departments表和employees表有等值department_id,locations表和departments表有等值location_id则可通过此进行连接
SELECT e.employee_id,l.location_id
FROM employees e,departments d,locations l
WHERE e.`department_id`=d.`department_id`
AND d.`location_id`=l.`location_id`;
FROM employees e,departments d,locations l
WHERE e.`department_id`=d.`department_id`
AND d.`location_id`=l.`location_id`;
