如何合并2个表并按字母顺序获取输出

时间:2015-07-09 12:42:34

标签: mysql sql

表格:

TEST1

id1 | name1
1   |  a
2   |  s
3   |  d
4   |  t
5   |  z

TEST2

id2 | name2
1   |  c
2   |  b
3   |  e
4   |  k
5   |  x

需要编写查询以按字母顺序生成输出

a
b
c
d
e
k
s
t
x
z

这是可能的,只使用sql查询,不使用代码。

1 个答案:

答案 0 :(得分:8)

试试这个:

Select name 
from (select name1 as name from test1
      union
      select name2 as name from test2
) b order by name

这里内部子查询返回两个表的并集结果,然后将结果作为临时表b。然后,您可以从按名称排序的临时表中选择名称。

感谢@Thorsten Kettner的更新,上述功能可以在没有子查询的情况下轻松完成:

select name1 as name from test1
union all
select name2 as name from test2
order by name

修改:使用union all保留重复项,同时也会更快。