表格:
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查询,不使用代码。
答案 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
保留重复项,同时也会更快。