在 MySQL 中,如果我有两个 select 语句A
,B
并且都返回一列整数
例如:
A
返回
4
6
20
8
2
10
15
B
返回
3
5
8
13
10
15
80
58
B
我怎样才能将它们组合成一个表并过滤掉所有重复项(如果它在则删除A
),如下所示:
4
6
20
8
2
10
15
3
5
13
80
58
谢谢
表本质上是无序的。用于组合表中的值的 SQL 操作是union
:
select A.*
from A
union
select B.*
from B;
请注意,值的顺序很可能会发生变化。
编辑:
如果您想在“B”的剩余值之前从“A”获取值,您可以这样做:
select col
from (select A.col, 'A' as which
from A
union all
select B.col, 'B'
from B
where not exists (select 1 from A where A.col = B.col)
) ab
order by which;