温馨提示×

温馨提示×

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

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

怎样用join连表

发布时间:2026-09-16 12:18:15 来源:亿速云 阅读:94 作者:小樊 栏目:数据库

在 SQL 中,JOIN 用于把两个或多个表根据关联字段连接起来查询。下面用通俗方式给你讲清楚。


一、最基础的语法结构

SELECT 列名
FROM 表A
[JOIN类型] 表B
ON 表A.关联字段 = 表B.关联字段;

二、常见 JOIN 类型(重点)

1️⃣ INNER JOIN(内连接,最常用)

只返回两表都匹配的数据

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

✅ 结果:有订单的用户


2️⃣ LEFT JOIN(左连接)

左表全部保留,右表没匹配就为 NULL

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

✅ 结果:所有用户(包括没下单的)


3️⃣ RIGHT JOIN(右连接)

右表全部保留,左表没匹配就为 NULL

SELECT u.name, o.order_id
FROM users u
RIGHT JOIN orders o
ON u.id = o.user_id;

4️⃣ FULL JOIN(全连接,MySQL 不支持)

SELECT *
FROM A
FULL JOIN B
ON A.id = B.id;

✅ 左右表都保留(不匹配为 NULL)


三、多表 JOIN 示例

SELECT u.name, o.order_id, p.product_name
FROM users u
JOIN orders o ON u.id = o.user_id
JOIN products p ON o.product_id = p.id;

四、常见易错点 ⚠️

  1. 忘了写 ON
-- 错误
FROM A JOIN B
  1. 字段名冲突要用别名
SELECT A.id, B.id
  1. LEFT JOIN + WHERE 右表字段
-- 会把 LEFT JOIN 变成 INNER JOIN
WHERE o.order_id IS NOT NULL

五、什么时候用哪种 JOIN?

需求
只要有关联的数据 INNER JOIN
主表全要 LEFT JOIN
从表全要 RIGHT JOIN

如果你愿意,可以告诉我:

  • 用的数据库(MySQL / PostgreSQL / Oracle)
  • 具体表结构

我可以直接帮你写 可用的 JOIN SQL

向AI问一下细节

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

AI