LEFT JOIN 返回左表全部记录及右表匹配记录,不匹配则右表字段为 NULL;语法为 SELECT ... FROM 左表 LEFT JOIN 右表 ON 条件;WHERE 过滤右表字段会丢失左表无匹配行。
左连接(LEFT JOIN)在 MySQL 中用于查询左表的全部记录,以及右表中与左表匹配的记录;如果右表没有匹配项,则对应字段显示为 NULL。
LEFT JOIN 必须配合 ON 子句指定关联条件,不能省略:
SELECT 字段列表 FROM 左表 LEFT JOIN 右表 ON 关联条件;
注意:LEFT JOIN 也可写作 LEFT OUTER JOIN,效果完全相同,“OUTER”可省略。
见使用场景与示例例如有两张表: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,但姓名仍会显示。