MySQL 中的左右连接是两种常用的表连接方式,用于从多个表中检索数据。下面我将详细介绍这两种连接方式的区别、语法和使用示例。
左连接返回左表中的所有记录,即使右表中没有匹配的记录。如果右表中没有匹配的记录,则结果中右表字段显示为 NULL。
SELECT 列名1, 列名2, ...
FROM 表1
LEFT JOIN 表2 ON 表1.列名 = 表2.列名;假设有两个表:
employees(员工表)departments(部门表)-- 查询所有员工及其部门信息(包括没有部门的员工)
SELECT e.name, d.department_name
FROM employees e
LEFT JOIN departments d ON e.department_id = d.id;结果将包含所有员工,即使某些员工没有分配部门(此时 department_name 为 NULL)。
右连接返回右表中的所有记录,即使左表中没有匹配的记录。如果左表中没有匹配的记录,则结果中左表字段显示为 NULL。
SELECT 列名1, 列名2, ...
FROM 表1
RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;-- 查询所有部门及其员工信息(包括没有员工的部门)
SELECT e.name, d.department_name
FROM employees e
RIGHT JOIN departments