怎么用SQL比对两表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用SQL比对两表相关的知识,希望对你有一定的参考价值。

表1,A字段包含B字段
A B
111 123
111 235

表2,C字段包含D字段

C D
111 123
如何用SQL来比对,两表之间的差异数据?

参考技术A Oracle里边可以这样:
select * from 表1 minus select * from 表2

SqlServer2005中可以这样:
select * from 表1 except select * from 表2

sqlserver2000中可以这样:
select * from 表1 where not exists (select 1 from 表2 where C=表1.A and D=表1.B)

sqlserver2000里边的这种方式在Oracle和sqlserver2005中也是可行的本回答被提问者采纳
参考技术B 两表字段类型一样~
思路:先把两表的数据合并~,然后把重复的数据剔除掉,剩下的就是两表的差异数据了!
-----实现语句----------------
Select * from (select * from A
Union all
Select * from B) T Group by A,B having count(*)=1
参考技术C --表结构:
CREATE TABLE t1_old (
id int NOT NULL,
log_time DATETIME DEFAULT '') ;
CREATE TABLE t1_new (
id int NOT NULL,
log_time DATETIME DEFAULT '') ;--两表的记录数都为100条。select count(*) from t1_old;select count(*) from t1_new;
参考技术D oracle中:

select * from 表1
minus
select * from 表2

SqlServer2000中:

select * from 表1 where not exists(
select * from 表2 where 表2.C=表1.A and 表2.D=表1.B)

---
以上,希望对你有所帮助。
第5个回答  2019-06-02 sqlserver写法,其他数据库可能略有不同,如果其他数据库请说明
select a.发票号,sum(isnull(b.金额,0)) 汇总表金额,sum(c.总金额) 明细表金额
from
(select 发票号 from 汇总表
union
select 发票号 from 明细表) a
left join 汇总表 b on a.发票号=b.发票号
left join (select 发票号,sum(金额) 总金额 from 明细表 group by 发票号) c on a.发票号=c.发票号
group by a.发票号

用SQL语句怎么从一个表中怎么获取最高工资的三个人

使用查询语句
select top 3 * from (数据库) order by (工资字段名) desc
如果取出来的刚好是工资最低的,那就把desc去掉

如果你需要完整的代码,可以直接联系我 ,说明你的数据库,开发使用的语言,我可以帮你写完整的代码
参考技术A select top 3 *
from 表
order by 工资字段 desc

以上是关于怎么用SQL比对两表的主要内容,如果未能解决你的问题,请参考以下文章

SQL 查找两表中不同的数据

如何用sql语言比对两张表中是不是有重复身份证号

序列比对及BAM、SAM文件

用python比对数据库表数据的脚本

HISAT2 建立索引警告和比对时报错解决方案

megalign序列比较后怎么显示