Mysql 如何在我的sql中添加两条select语句中的行?
在MySQL中,如果我有两个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
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,它们的值都是唯一的。