表1t1:c1,c2,c3,c4,c5,c6....cn,表2t2:c1,c2,c3,c4,c5.....cn.两个表关联5个字段select * from t1,t2 where t1.c1=t2.c1.....t1.c5=t2.c5可以选择出来一些数据.但是还剩下一些数据(两个表都剩下有)是我需要提取出来分析为什么数据关联不上(因为数据有变化了,我需要知道这些变化).请给一个办法分别把两个表关联完剩下的那些数据提取出来.
...全文
11612打赏收藏
请教一个关联SQL如何写?在线等待!
表1t1:c1,c2,c3,c4,c5,c6....cn,表2t2:c1,c2,c3,c4,c5.....cn.两个表关联5个字段select * from t1,t2 where t1.c1=t2.c1.....t1.c5=t2.c5可以选择出来一些数据.但是还剩下一些数据(两个表都剩下有)是我需要提取出来分析为什么数据关联不上(因为数据有变化了,我需要知道这些变化).请给一个办法分别把两个表关联完剩下的那些数据提取出来.
.取出两表中相同记录,其中结果包括表1.ID,表2.ID,和其他需要的内容,设为查询1;
select t1.id,t2.id,.. from t1,t2 where t1.c1=t2.c1 and t1.c2=t2.c2 and t1.c3=t2.c3 and t1.c4=t2.c4 and t1.c5=t2.c5;
2.表1与查询1比较,筛选出在查询1不在表1中的记录;
select t1.* from t1 where t1.id not in (select t1.id from 查询1);
3.表2与查询1比较,筛选出在查询1不在表2中的记录;
select t2.* from t2 where t2.id not in (select t2.id from 查询1);
这样2,3中结果便是你想要的结果
有一种方法,可能麻烦一点,但是道理很简单,步骤如下:
前提:表1和表2都有主键,如果没有添加一个,比如,表1中加ID,内容为1,2,...,n(主键);表2也这样一来操作;
1.取出两表中相同记录,其中结果包括表1.ID,表2.ID,和其他需要的内容,设为查询1;
select t1.id,t2.id,.. from t1,t2 where t1.c1=t2.c1 and t1.c2=t2.c2 and t1.c3=t2.c3 and t1.c4=t2.c4 and t1.c5=t2.c5;
2.表1与查询1比较,筛选出在查询1不在表1中的记录;
select t1.* from t1 where t1.id not in (select t1.id from 查询1);
3.表2与查询1比较,筛选出在查询1不在表2中的记录;
select t2.* from t2 where t2.id not in (select t2.id from 查询1);
这样2,3中结果便是你想要的结果