SQL 查找两表中不同的数据

2022-09-23 09:04

设a表1,2,31,2,4b表1,2,31,2,41,2,5目的找出1,2,5数据量很大要效率高的语句
2个回答
--一句SQL就搞定
SELECT * FROM b
EXCEPT
SELECT * FROM a
方法比较多
我随便举两个例子
假设a表中有一列‘aa’,数据是1,2,3
1,2,4
b表中有一列‘bb’,数据是1,2,3
1,2,4
1,2,5
目的是找出这个1,2,5
其实就是找出唯一值

方法1:写个子查询嵌套
select * from (select a.aa as 'ccc',b.bb as 'bbb'
from a full join b on a.aa = b.bb) c where c_ccc is null or c.bbb is null
这个语句就是找出2张表中的唯一值

方法2:利用union连接再分组having,取得唯一值
select c.aa,count(*) from (select aa from a
union all
select bb from b) c group by c.aa having count(*) = 1
查询出的就是两张表中的唯一值【其实也就是重复次数 = 1的】
相关问答
sql查询每月同一日数据
1个回答2022-11-03 13:01
SELECT * FROM user_config u where DATE(u.last_update_date)='09'; 要加引号
SQL怎么查询两个表中不同的数据?
1个回答2023-01-07 16:33
1,关键是第一步,你要找出表1中有,而表2中没有的数据行.,select t1.* from 表1 t1 left join 表2 t2 on t1.?=t2.? 2, 以什么列相同判定为有,都...
全文
SQL怎么查询两个表中不同的数据
2个回答2022-10-04 12:15
工具/材料:Management Studio。 1、首先在桌面上,点击“Management Studio”图标。 2、其次在该界面中,点击“新建查询”按钮。 3、继续在该界面中,输...
全文
SQL怎么把两个表的数据合在一起查询!?
2个回答2022-10-26 18:23
如果你的这两个表是有键的关联的话,建议在查询的时候就进行联结查询,而不是分别查出来再合在一起。使用左连接一般就可以解决你的问题。 如果你的这两个表查出来的数据没有什么关联,只是单纯的合在一起而已的话...
全文
sql根据时间模糊查询
4个回答2022-12-16 19:43
模糊查询sql没有定义自定义格式转换 也就是没法精确到时 推荐借助dateadd比较大小来做 同样达到效果 例: SELECT COUNT(1) FROM dbo.Accident WHERE f...
全文
sql数据库查询出来的数据从大到小排序
4个回答2022-09-11 08:02
利用order by进行排序,降序(从大到写)可以用desc,升序(从小到大)是默认的
怎样用SQL语句查询一个数据库中的所有表
1个回答2022-08-26 05:43
--读取库中的所有表名 select name from sysobjects where xtype='u' --读取指定表的所有列名 select name from syscolumns whe...
全文
如何在SQL中按时间段查询数据
5个回答2022-10-04 12:04
sql server: select * from 表 where 发生日期>'2008-7-1' and 发生日期#2008-7-1# and 发生日期扩展资料: sql查询日期语句 sele...
全文
SQL查询效率问题....数据量很大
1个回答2022-10-16 22:37
oracle 数据库吗?
热门问答