温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

左连接适合什么场景

发布时间:2026-11-02 15:27:53 来源:亿速云 阅读:97 作者:小樊 栏目:数据库

左连接(LEFT JOIN / LEFT OUTER JOIN) 用于以“左表”为主,保留左表全部记录,右表只匹配存在的部分,匹配不到则补 NULL。

下面按场景 + 例子说明更适合用左连接的情况。


一、典型适合左连接的场景

1️⃣ 主表全量展示,附属信息可选

场景:一定要看左边全部数据,右边有没有都行。

例子:

  • 用户表(左) + 订单表(右)
  • 查「所有用户及其订单」
SELECT u.id, u.name, o.order_id
FROM user u
LEFT JOIN orders o
  ON u.id = o.user_id;

✅ 没有订单的用户也会显示(订单为 NULL)


2️⃣ 统计“是否存在”关系

场景:判断左表记录在右表是否有关联。

例子:查「从未下过单的用户」

SELECT u.id
FROM user u
LEFT JOIN orders o
  ON u.id = o.user_id
WHERE o.order_id IS NULL;

✅ 左连接 + IS NULL 是经典“缺失关系”写法


3️⃣ 报表 / 看板(不能丢主数据)

场景:报表维度不能少。

例子:

  • 商品表(左)
  • 销售表(右)
  • 查「所有商品销售情况」
SELECT p.name, SUM(s.amount)
FROM product p
LEFT JOIN sales s
  ON p.id = s.product_id
GROUP BY p.name;

✅ 没卖出的商品也保留(销量为 NULL / 0)


4️⃣ 配置 / 字典表补全

场景:主数据 + 可选配置。

例子:

  • 员工表
  • 部门表
  • 查所有员工,部门可能未分配
SELECT e.name, d.dept_name
FROM employee e
LEFT JOIN department d
  ON e.dept_id = d.id;

5️⃣ 多表关联但只以一张表为主

场景:A 是核心,B、C 是补充。

A
LEFT JOIN B
LEFT JOIN C

✅ 保证 A 永远不丢


二、不适合左连接的情况

❌ 只要“两边都存在”的数据
→ 用 INNER JOIN

❌ 以右表为主
→ 用 RIGHT JOIN(但很少用,通常改左连接)

❌ 只关心交集结果
→ 左连接会拖慢性能


三、一句话总结

左连接适合:以左表为主,右表可有可无,不能丢左表数据。

如果你有具体业务表结构,我可以直接帮你写最合适的 JOIN。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手