在 SQL 中,联合查询通常有两种常见含义,下面分别说明:
作用:把多个 SELECT 的结果集合并成一个结果集。
SELECT 列1, 列2 FROM 表A
UNION
SELECT 列1, 列2 FROM 表B;
SELECT 的列数必须相同UNION:自动去重UNION ALL:保留重复数据,性能更好SELECT name FROM students
UNION
SELECT name FROM teachers;
SELECT id, name FROM users
UNION ALL
SELECT id, username FROM admins;
作用:把多张表按关系连接起来一起查询。
只返回两表匹配的数据
SELECT a.id, a.name, b.order_id
FROM users a
INNER JOIN orders b
ON a.id = b.user_id;
返回左表全部数据,右表无匹配则为 NULL
SELECT a.id, a.name, b.order_id
FROM users a
LEFT JOIN orders b
ON a.id = b.user_id;
返回右表全部数据
SELECT a.id, b.order_id
FROM users a
RIGHT JOIN orders b
ON a.id = b.user_id;
SELECT *
FROM A
FULL JOIN B
ON A.id = B.id;
| 对比项 | UNION | JOIN |
|---|---|---|
| 作用 | 合并结果集 | 关联多张表 |
| 数据来源 | 纵向拼接 | 横向扩展 |
| 列要求 | 列数一致 | 通过关联字段连接 |
UNIONJOINUNION ALL如果你有具体表结构或业务场景,我可以直接帮你写 SQL。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。