温馨提示×

温馨提示×

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

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

数据库左连接怎么用

发布时间:2026-10-12 22:26:49 来源:亿速云 阅读:103 作者:小樊 栏目:数据库

在 SQL 中,左连接(LEFT JOIN / LEFT OUTER JOIN)用于查询左表全部记录,以及右表中匹配的记录;如果右表没有匹配,则右表字段以 NULL 填充。


一、基本语法

SELECT 列名
FROM 左表
LEFT JOIN 右表
  ON 左表.字段 = 右表.字段;

LEFT OUTER JOIN 和 LEFT JOIN 是等价的。


二、示例说明

示例表

users(用户表)

id name
1 张三
2 李四
3 王五

orders(订单表)

id user_id amount
1 1 100
2 1 200
3 2 150

1️⃣ 左连接示例(查所有用户及其订单)

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

结果:

id name amount
1 张三 100
1 张三 200
2 李四 150
3 王五 NULL

✅ 王五没有订单,但仍然显示。


2️⃣ 只查“没有订单”的用户

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

结果:

id name
3 王五

三、常见注意点

✅ 1. 左表是“主表”

  • 左表所有记录都会保留
  • 右表只保留能匹配上的

✅ 2. 多条件连接

LEFT JOIN orders o
  ON u.id = o.user_id
 AND o.status = 'paid';

✅ 3. 过滤条件放哪?

  • 连接条件:写在 ON 里
  • 结果过滤:写在 WHERE 里(可能影响左连接效果)

四、和其他连接对比

连接类型 特点
INNER JOIN 只返回两表都匹配的数据
LEFT JOIN 左表全有,右表可空
RIGHT JOIN 右表全有,左表可空
FULL JOIN 两边全有(MySQL 不支持)

如果你用的是 MySQL / PostgreSQL / SQL Server,或者想看 多表左连接 / 性能优化,可以继续问我。

向AI问一下细节

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

AI
助
手