ACCESS中有2个表,想找出2个表不一样的数据,SQL查询怎么写?

ACCESS数据库中有2个表,表1中100条数据,表2中80条,表1包含表2的数据,现在想找出表1中表2没有的那20条数据,请问SQL语句怎么写啊????
或者是一个表中的2个字段像上面这样,怎么能查询出来呢?

2种方法好像都不行啊。

举例:表x1中有字段ph,表x2中也有字段ph,如果查出这两个字段中不同的内容?

1、SELECT * FROM t2 WHERE id NOT IN (SELECT id FROM t1)
2、SELECT * FROM t2 WHERE NOT EXISTS(SELECT * FROM t1 WHERE t1.id=t2.id)
3、SELECT t2.* FROM t2 LEFT JOIN t1 ON t2.id=t1.id WHERE t1.id is null
三种方法都得不到所想要的不同内容的结果(VB编程,语法正确,结果为空),崩溃了。
我有表1=Standard_Data1 ,表2=Standard_Data2,两个表里面只有1列数据为MSISDN,下面SQL语句没法找到不同的内容。
select * from Standard_Data1 where Standard_Data1.MSISDN not IN(select Standard_Data2.MSISDN from Standard_Data2)
select * from Standard_Data1 where not exists(select * from Standard_Data2 where Standard_Data1.MSISDN=Standard_Data2.MSISDN)
更新:
distinct是关键,在select后面加上这个就成功了。另外,最快的查找方法是下面这2条,之所以是2条因为要找两次才能找全互相不同的数据:
select distinct Standard_Data1.* from Standard_Data1 left join Standard_Data2 on Standard_Data1.MSISDN=Standard_Data2.MSISDN where Standard_Data2.MSISDN is NULL
select distinct Standard_Data2.* from Standard_Data2 left join Standard_Data1 on Standard_Data2.MSISDN=Standard_Data1.MSISDN where Standard_Data1.MSISDN is NULL
找相同内容的语句就很容易就出正确的结果了,如下:
select distinct Standard_Data1.* from Standard_Data1 inner join Standard_Data2 on Standard_Data1.MSISDN=Standard_Data2.MSISDN
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-13
先要确定1个或者几个索引字段,如果是多个字段的话先连接起来
select * from 表1 where 表1.字段1 & 表1.字段2 not in (select 字段1&字段2 from 表2)本回答被网友采纳
第2个回答  2018-03-13
select * from x1 where id not in
(select a.id from x1 a left join x2 b on a.ph = b.ph)

解释下,先查出所有项都一样的,x1表的id

然后id不再这里的就是不同的喽

第3个回答  2011-02-18
select * from 1,2 where 1.name<>2.name
第4个回答  2011-02-18
怎么会呢
Select * from 表1 where 表1比较字段 not in (select 表2比较字段 from 表2)本回答被提问者采纳

ACCESS中有2个表,想找出2个表不一样的数据,SQL查询怎么写?
我有表1=Standard_Data1 ,表2=Standard_Data2,两个表里面只有1列数据为MSISDN,下面SQL语句没法找到不同的内容。select * from Standard_Data1 where Standard_Data1.MSISDN not IN(select Standard_Data2.MSISDN from Standard_Data2)select * from Standard_Data1 where not exists(select * from...

如何用access选出两个表中不匹配的数据
请参考下列几种SQL写法,选出A表中id不存在于B表id里的记录,这里假设两张表的id都是唯一的:1) select * from A where id not in (select id from B);2) select A.* from A where not exists (select * from B where B.id=A.id);3) select A.* from A left join B on A.id...

access 取两个表中不同的数据
可以这样偏写SQL语句,将A表中与 B表基于偏号的非交集追加到B表里 insert into b(*) select a.* from a left join b on a.编号=b.编号 where b.编号 is null;

如何在access中查询同结构2个数据表中数据不同的字段
方法一:分别找出 --A不在B中的 select * from A where c not in (select c from B)--B不在A中的 select * from B where c not in (select c from A)或者 方法二:select * from A into #temp insert into #temp select * from B select * from #temp group by c,d,e having...

ACCESS 对两表不同的查找(多索引)
1)查询新表较之于旧表有变更的情况 要求选出“新表”中[A ID]字段与”旧表“中[B ID]字段存在交集的记录,并增加一个[备注]字段,此字段值只有两种状态——“更改”和“未更改”,判断的标准是同ID的情况下如果”新表“的字段[A]与”旧表“的字段[B]相同则返回”未更改“,反之返回”更改...

access 两个数据表列求和对比sql语句
b.已归还数量 is null,0,b.已归还数量) AS 未归还数量 FROM 借出记录表 AS a LEFT JOIN (select 借出编号,sum(归还数量) as 已归还数量 from 归还记录表 group by 借出编号) AS b ON a.借出编号=b.借出编号 WHERE a.借出数量-iif(b.已归还数量 is null,0,b.已归还数量)<>0 ...

access 二个表找不相同的部分
建立第三张表,[姓名] [组别] [年份],然后把这两张表的全部记录放入到这张表.SELECT [姓名] [组别],COUNT(姓名) AS NUM FROM TBLNAME GROUP BY [姓名] [组别]

access中如何查找出两列数据的差异
你这俩字段是同一个表的吗?可以写个sql语句 select a from 表名 where a not in (select b from 表名)如果才做有问题,直接我,浏览器右上角那

SQL 查找两表中不同的数据
方法二 WITH C AS ( SELECT A.Name FROM ConsumerCouponApply A GROUP BY A.Name EXCEPT SELECT B.Name FROM ConsumerCouponApply B GROUP BY B.Name )SELECT COUNT(1)FROM C 方法三 SELECT COUNT(A.Name)FROM ConsumerCouponApply A LEFT JOIN ConsumerCouponApply B ON...

提取二个表中不同的数据
select DISTINCT b.* from b,a where b.字段1<>a.字段1 AND b.字段2<>a.字段2 AND b.字段3<>a.字段3 AND b.字段4<>a.字段4 AND b.字段5<>a.字段5

相似回答