语法:SELECT 列名 FROM 表名1 连接方式 表2 ON 连接条件;
内连接查询(INNER JOIN ON)
# 将两张表中 job_id 相同的行进行拼接SELECT * FROM t_employeesINNER JOIN t_jobsON t_employees.`job_id`=t_jobs.`job_id`;# 另一种写法SELECT * FROM t_employees, t_jobs WHERE t_employees.job_id = t_jobs.job_id;
三表连接查询
# 查询所有员工、名字、部门名称、部门所在国家ID SELECT * FROM t_employees e INNER JOIN t_department d ON e.department_id = d.department_id INNER JOIN t_location l ON d.location_id = l.location_id;左外连接(LEFT JOIN ON)
以左表为主表,依次向右匹配,匹配到返回结果
匹配不到,以 NULL 填充
# 查询所有员工信息,以及所对应部门名称(没有部门的员工,也在查询结果中,部门名称以 NULL 填充)
SELECT e.employee_id, e.first_name, e.salary, d.department_name FROM t_employees e
LEFT JOIN t_departments d
ON e.department_id=d.department_id;
- 右外连接(RIGHT JOIN ON)
以右表为主表,依次向左匹配,匹配到返回结果
匹配不到,以 NULL 填充
# 查询所有员工信息,以及所对应部门名称(没有部门的员工,也在查询结果中,部门名称以 NULL 填充)
SELECT e.employee_id, e.first_name, e.salary, d.department_name FROM t_employees e
RIGHT JOIN t_departments d
ON e.department_id=d.department_id;
