ACCESS中有2个表,想找出2个表不一样的数据,SQL查询怎么写?
ACCESS数据库中有2个表,表1中100条数据,表2中80条,表1包含表2的数据,现在想找出表1中表2没有的那20条数据,请问SQL语句怎么写啊????或者是一个表中的...
ACCESS数据库中有2个表,表1中100条数据,表2中80条,表1包含表2的数据,现在想找出表1中表2没有的那20条数据,请问SQL语句怎么写啊????
或者是一个表中的2个字段像上面这样,怎么能查询出来呢?
2种方法好像都不行啊。
举例:表x1中有字段ph,表x2中也有字段ph,如果查出这两个字段中不同的内容? 展开
或者是一个表中的2个字段像上面这样,怎么能查询出来呢?
2种方法好像都不行啊。
举例:表x1中有字段ph,表x2中也有字段ph,如果查出这两个字段中不同的内容? 展开
6个回答
展开全部
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
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个或者几个索引字段,如果是多个字段的话先连接起来
select * from 表1 where 表1.字段1 & 表1.字段2 not in (select 字段1&字段2 from 表2)
select * from 表1 where 表1.字段1 & 表1.字段2 not in (select 字段1&字段2 from 表2)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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不再这里的就是不同的喽
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-02-18
展开全部
select * from 1,2 where 1.name<>2.name
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么会呢
Select * from 表1 where 表1比较字段 not in (select 表2比较字段 from 表2)
Select * from 表1 where 表1比较字段 not in (select 表2比较字段 from 表2)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询