【问题标题】:SELECT chaining the result of two queries on MYSQLSELECT 链接 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;

谢谢。

【问题讨论】:

  • 欢迎来到 Stackoverflow!如果您还没有read the FAQ,请这样做! ;)

标签: mysql sql database select


【解决方案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。

        【讨论】:

          猜你喜欢
          • 2017-04-05
          • 2011-05-16
          • 1970-01-01
          • 2021-11-09
          • 1970-01-01
          • 1970-01-01
          • 2014-08-17
          • 1970-01-01
          • 2023-04-09
          相关资源
          最近更新 更多