You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为指定表编写SQL请求/命令?表连接SQL语句相关咨询

如何编写连接两个数据表的SQL语句?

嘿,我来帮你梳理下用SQL连接两个数据表的常用方法~常见的连接类型有几种,我一个个给你讲清楚,配个简单例子方便理解:

1. 内连接(INNER JOIN)

这是最常用的连接方式,只返回两个表中匹配连接条件的行,也就是两个表数据的交集部分。
比如我们有users表(存储用户ID、姓名)和orders表(存储订单ID、关联用户ID、订单金额),要找出有订单记录的用户及其订单信息,可以这么写:

SELECT users.user_id, users.name, orders.order_id, orders.amount
FROM users
INNER JOIN orders ON users.user_id = orders.user_id;

小贴士:ON后面是两个表的关联字段,这里是user_id,一定要确保这两个字段的类型匹配哦!

2. 左连接(LEFT JOIN / LEFT OUTER JOIN)

返回左表(FROM后面的表)的所有行,以及右表中匹配连接条件的行;如果右表没有对应匹配的记录,那右表的列会显示NULL。
比如要找出所有用户,包括那些还没下过订单的用户:

SELECT users.user_id, users.name, orders.order_id, orders.amount
FROM users
LEFT JOIN orders ON users.user_id = orders.user_id;

如果只想筛选出没有订单的用户,加个条件就行:

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

3. 右连接(RIGHT JOIN / RIGHT OUTER JOIN)

和左连接逻辑相反,返回右表的所有行,以及左表中匹配连接条件的行;左表无匹配的部分,对应列会显示NULL。
比如要查看所有订单,包括那些可能缺失关联用户信息的测试订单:

SELECT users.user_id, users.name, orders.order_id, orders.amount
FROM users
RIGHT JOIN orders ON users.user_id = orders.user_id;

4. 全连接(FULL JOIN / FULL OUTER JOIN)

返回两个表的所有行,不管有没有匹配的记录;某一方无匹配的部分,对应列会显示NULL。
注意:像MySQL这类数据库不支持直接的FULL JOIN,可以用UNION组合左连接和右连接来实现效果。

支持全连接的数据库(比如PostgreSQL)写法:

SELECT users.user_id, users.name, orders.order_id, orders.amount
FROM users
FULL JOIN orders ON users.user_id = orders.user_id;

MySQL替代写法:

SELECT users.user_id, users.name, orders.order_id, orders.amount
FROM users
LEFT JOIN orders ON users.user_id = orders.user_id
UNION
SELECT users.user_id, users.name, orders.order_id, orders.amount
FROM users
RIGHT JOIN orders ON users.user_id = orders.user_id;

额外小技巧

可以给表起别名简化代码,让SQL更简洁易读:

SELECT u.user_id, u.name, o.order_id, o.amount
FROM users u
INNER JOIN orders o ON u.user_id = o.user_id;

注意:连接时一定要指定ON子句,避免出现笛卡尔积(两个表所有行无规则匹配,数据量会爆炸)!

内容的提问来源于stack exchange,提问作者Gurinder Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:32:02