Mysql 如何在我的sql中添加两条select语句中的行?

Mysql 如何在我的sql中添加两条select语句中的行?,mysql,select,add,Mysql,Select,Add,在MySQL中,如果我有两个select语句A和B,并且都返回一列整数 例如: A返回 4 6 20 8 2 10 15 3 5 8 13 10 15 80 58 B返回 4 6 20 8 2 10 15 3 5 8 13 10 15 80 58 如何将它们合并到一个表中并过滤掉所有重复项(如果在a中,则从B中删除),如下所示: 4 6 20 8 2 10 15 3 5 13 80 58 谢谢表格本身就是无序的。组合表中的值的SQL操作是union: select A.* from A

在MySQL中,如果我有两个select语句
A
B
,并且都返回一列整数

例如:

A
返回

4
6
20
8
2
10
15
3
5
8
13
10
15
80
58
B
返回

4
6
20
8
2
10
15
3
5
8
13
10
15
80
58
如何将它们合并到一个表中并过滤掉所有重复项(如果在
a
中,则从
B
中删除),如下所示:

4
6
20
8
2
10
15
3
5
13
80
58

谢谢

表格本身就是无序的。组合表中的值的SQL操作是
union

select A.*
from A
union
select B.*
from B;
请注意,值的顺序很可能会改变

编辑:

如果要先从“A”中获取值,再从“B”中获取其余值,可以使用以下方法:

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;

因此,无法保持A的顺序不变,只需删除B中A?@omega中的顺序。除非有id或创建日期之类的字段,否则答案是“否”。SQL表本质上是无序的(它们表示集合)。没有排序,因此无法保留。上面的值是表中的id。这是否会产生差异,因此对于每个表a和表B,它们的值都是唯一的。