【问题标题】:How to bind rows resulting from different MySQL queries?如何绑定来自不同 MySQL 查询的行?
【发布时间】:2011-01-21 11:45:28
【问题描述】:

我想将源自另一个 SQL 查询(不同表)的几行添加到查询结果中。例如:

SELECT mycol from mytable 

# returns 
mycol
1
4
6
SELECT anothercol from anothertable
#returns
anothercol
3
8
9

我想得到的是:

myresult
1
4
6
3
8
9

目前我使用统计软件包进行这种操作,但我想知道这是否可以在 MySQL 中以某种方式实现。在合并来自不同来源的时间序列时,通常需要它。有没有 SQL 方法可以做到这一点?

【问题讨论】:

  • 如下所示,要组合两个单独查询的结果集,您可以使用 UNION。查看 MySQL 参考手册(在线且非常易于阅读)以获取语法和详细信息。如果要保留出现在两个结果集中的值,请使用 UNION ALL。

标签: sql mysql


【解决方案1】:

使用 UNION 语句。

有点像:

(SELECT * FROM table WHERE column = 34)
UNION
(SELECT * FROM table WHERE column2 = 45);

然后您可以在末尾添加一个 ORDER BY,例如:

(SELECT * FROM table WHERE column = 34)
UNION
(SELECT * FROM table WHERE column2 = 45)
ORDER BY column;

【讨论】:

    【解决方案2】:
    SELECT  mycol
    FROM    mytable
    UNION ALL
    SELECT  othercol
    FROM    othertable
    

    【讨论】:

      【解决方案3】:

      这个问题可能会有所帮助:Merge 2 tables for a SELECT query?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-19
        • 2021-04-18
        • 2018-03-08
        相关资源
        最近更新 更多