【问题标题】:Merge two columns from two tables into one将两个表中的两列合并为一列
【发布时间】:2014-01-03 18:00:57
【问题描述】:

我正在尝试按两个不同表中的两个不同列进行排序。 情况是这样的:

我有 1 个表“shops”,其中有一列名为“shopy”,一个 INT 列。 另一个表称为“infra”,有一个称为“y”的列,也是一个 INT。

我想选择这两列并按它们排序,所以我会得到这样的结果:

       y
----------------
value from shopy
value from shopy
value from y
value from shopy
value from y
value from y
value from shopy
etc.

这样 shopy 和 y 被合并并按它们的值排序。

我的问题是:这可能吗?

【问题讨论】:

  • 让我们在 2 个表上使用 join 关键字,并在查询末尾添加条件 order by
  • 通过join,他可以实现将数据放在同一个数据集中,但不能将其混合在同一列中。
  • 你需要在两个表之间做一个联合,而不是一个连接

标签: mysql merge


【解决方案1】:
 SELECT shopy as y FROM shops
 UNION ALL
 SELECT y FROM infra
 ORDER BY y ASC

对于降序写入 Order by y DESC。

http://sqlfiddle.com/#!2/62884/1 上的演示

【讨论】:

    【解决方案2】:

    当然可以,当然可以。

    您所要做的就是一个临时表,其中包含一个名为任何您想要的列的列,并将 2 个表的值插入到临时表中的同一列中。

    最后你只需要从临时表中选择你想要的。

    阅读此处发布的tutorial

    【讨论】:

      【解决方案3】:

      是的,试试这个:如果你想按降序排列

      SELECT <columnnane> FROM tableName
      UNION ALL
      SELECT <columnnane> FROM tablename
      ORDER BY <columnnane> DESC
      

      :如果你想要升序:

      SELECT <columnnane> FROM tableName
      UNION ALL
      SELECT <columnnane> FROM tablename
      ORDER BY <columnnane>
      

      【讨论】:

        猜你喜欢
        • 2014-01-27
        • 2014-04-01
        • 1970-01-01
        • 2015-04-01
        • 2021-04-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多