曲径通幽论坛

标题: UNION 与 UNION ALL -- 联合查询 [打印本页]

作者: beyes    时间: 2012-7-6 13:25
标题: UNION 与 UNION ALL -- 联合查询
UNION 可以将两个或多个 SELECT 查询联合起来,而这些 SELECT 查询可以作用在同一张表上,也可以作用在不同的表上 --- 对于这种情况,要确保两张表具有相同的列数,否则会出现语法错误。

使用 UNION 查询示例一:
[Plain Text] 纯文本查看 复制代码
SELECT uid,username FROM pw_members WHERE username LIKE 'bbb%' UNION SELECT uid, username FROM pw_members WHERE username LIKE 'ccc%';

[attach]751[/attach]


如果对两个表的查询结果中有相同的记录,那么 UNION 将去掉该查询结果中重复的部分,如下所示:
[Plain Text] 纯文本查看 复制代码
SELECT authID, authors FROM Author;

[attach]755[/attach]

[Plain Text] 纯文本查看 复制代码
SELECT ZHID, authors FROM Publisher;

[attach]756[/attach]

下面使用 UNION 来联合上面两个 SELECT 语句:
[Plain Text] 纯文本查看 复制代码
SELECT authID, authors FROM Author UNION SELECT ZHID, authors FROM Publisher;

[attach]757[/attach]


如果使用的是 UNION ALL 的话,那么重复的内容不会被去掉:
[Plain Text] 纯文本查看 复制代码
SELECT authID, authors FROM Author UNION ALL SELECT ZHID, authors FROM Publisher;

[attach]758[/attach]




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2