如何在mysql中使用左连接_mysql left join语句说明

来源:这里教程网 时间:2026-02-28 20:33:40 作者:

左连接(LEFT JOIN)在 MySQL 中用于查询左表的全部记录,以及右表中与左表匹配的记录;如果右表没有匹配项,则对应字段显示为 NULL。

LEFT JOIN 基本语法

LEFT JOIN 必须配合 ON 子句指定关联条件,不能省略:

SELECT 字段列表 FROM 左表 LEFT JOIN 右表 ON 关联条件;

注意:LEFT JOIN 也可写作 LEFT OUTER JOIN,效果完全相同,“OUTER”可省略。

LEFT JOIN 的核心逻辑

以左表为基准,逐行扫描每一条记录 对每一行,在右表中查找满足 ON 条件的记录 找到则拼接成一行结果;找不到则右表对应列填 NULL 最终结果行数 ≥ 左表行数(不会少于左表)

常见使用场景与示例

例如有两张表:users(用户ID、姓名)orders(订单ID、用户ID、金额),想查所有用户及其订单信息(包括从未下单的用户):

SELECT u.name, o.amount FROM users u LEFT JOIN orders o ON u.id = o.user_id;

结果中,没下过单的用户对应 amount 列为 NULL,但姓名仍会显示。

注意事项与易错点

WHERE 条件写在 JOIN 后可能“变相转为 INNER JOIN”:若在 WHERE 中过滤右表字段(如 WHERE o.amount > 100),会把右表为 NULL 的行剔除,失去左连接意义。应改用 ON 条件或 IS NULL 判断 ON 条件只能引用参与 JOIN 的表,不能出现 SELECT 中未 JOIN 的表 多个 LEFT JOIN 连续使用时,后一个 JOIN 的“左表”是前一个 JOIN 的结果集(含临时生成的 NULL 行)

相关推荐