在 SQL 中,JOIN 用于把两个或多个表根据关联字段连接起来查询。下面用通俗方式给你讲清楚。
SELECT 列名
FROM 表A
[JOIN类型] 表B
ON 表A.关联字段 = 表B.关联字段;
只返回两表都匹配的数据
SELECT u.name, o.order_id
FROM users u
INNER JOIN orders o
ON u.id = o.user_id;
✅ 结果:有订单的用户
左表全部保留,右表没匹配就为 NULL
SELECT u.name, o.order_id
FROM users u
LEFT JOIN orders o
ON u.id = o.user_id;
✅ 结果:所有用户(包括没下单的)
右表全部保留,左表没匹配就为 NULL
SELECT u.name, o.order_id
FROM users u
RIGHT JOIN orders o
ON u.id = o.user_id;
SELECT *
FROM A
FULL JOIN B
ON A.id = B.id;
✅ 左右表都保留(不匹配为 NULL)
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;
-- 错误
FROM A JOIN B
SELECT A.id, B.id
-- 会把 LEFT JOIN 变成 INNER JOIN
WHERE o.order_id IS NOT NULL
| 需求 | 用 |
|---|---|
| 只要有关联的数据 | INNER JOIN |
| 主表全要 | LEFT JOIN |
| 从表全要 | RIGHT JOIN |
如果你愿意,可以告诉我:
我可以直接帮你写 可用的 JOIN SQL。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。