SELECT 链接 MYSQL 上两个查询的结果

Posted

技术标签:

【中文标题】SELECT 链接 MYSQL 上两个查询的结果【英文标题】:SELECT chaining the result of two queries on MYSQL 【发布时间】:2012-03-08 17:34:49 【问题描述】:

我想链接两个查询的内容。请注意我不想使用CONCAT()CONCAT_WS(),因为那不是我想要实现的目标。

查询 1 个结果:

Id    Name
1     John
2     Mike

查询 2 个结果:

Id    Name
3     Emily
7     Robert

而我想要的是:

Id    Name
1     John
2     Mike
3     Emily
7     Robert

我也可以将两个查询重写为一个。那很好啊。以下是我目前失败的尝试:

SELECT a.x AS x, a.y AS y FROM a;
SELECT b.x AS x, b.y AS y FROM b;

谢谢。

【问题讨论】:

欢迎来到 ***!如果您还没有read the FAQ,请这样做! ;) 【参考方案1】:

使用UNION ALL 将多个查询连接到单个结果集:

SELECT a.x AS x, a.y AS y FROM a
UNION ALL
SELECT b.x AS x, b.y AS y FROM b

注意

UNION ALL 将保留所有冗余。请阅读手册页并修改查询以实现您想要的行为。

【讨论】:

【参考方案2】:
SELECT a.x AS x, a.y AS y FROM a
union all
SELECT b.x AS x, b.y AS y FROM b;

【讨论】:

【参考方案3】:

使用UNION:

SELECT a.x AS x, a.y AS y FROM a
UNION ALL
SELECT b.x AS x, b.y AS y FROM b;

【讨论】:

谢谢。这正是我想要的!【参考方案4】:

联合起来怎么样?

SELECT a.x AS x, a.y AS y 
FROM a
UNION
SELECT b.x AS x, b.y AS y 
FROM b;

【讨论】:

【参考方案5】:

你似乎想要一个工会:

SELECT a.x AS x, a.y AS y FROM a 
UNION
SELECT b.x AS x, b.y AS y FROM b

如果您希望保留可能的冗余,请使用 UNION ALL。

【讨论】:

以上是关于SELECT 链接 MYSQL 上两个查询的结果的主要内容,如果未能解决你的问题,请参考以下文章

mysql之select语法

如何合并两个select mysql查询的结果[重复]

MySQL:

mysql 查询结果显示宽度

MySQL - 使用 LIMIT 有效地将两个 select 语句组合成一个结果

MySQL两个查询合并成一个结果