将两个选择结果合并为一列

时间:2018-03-15 15:29:36

标签: mysql select union

让我们说这是第一个选择语句的结果

topic
 a 
 b
 c

这是第二个选择语句的结果

user
 d
 e

如何将这两个列合并为一个具有新列名称的列?我正在尝试使用UNION,但它不起作用

SELECT topic FROM topic_table WHERE topic LIKE '%' 
UNION
SELECT user FROM user_table WHERE topic LIKE '%'

我想要的专栏就像

desired_column
    a
    b
    c
    d
    e

2 个答案:

答案 0 :(得分:1)

平等地命名主题列:

SELECT topic as topic FROM a WHERE topic LIKE '%' 
UNION ALL
SELECT other_topic as topic FROM b WHERE other_topic LIKE '%';

游乐场: http://sqlfiddle.com/#!9/66ea3e/1

答案 1 :(得分:0)

您希望的结果应来自此查询:

SELECT topic as desired_column FROM topic_table WHERE topic LIKE '%' 
UNION ALL
SELECT user FROM user_table WHERE topic LIKE '%';

我将UNION更改为UNION ALL,因此查询不会删除重复内容(您的问题对此没有任何说明)。

WHERE条款非常不合情理。最好只使用WHERE topic IS NOT NULL