在access中写查询语句有数据重复的现象

SELECT AB.AID AS ID
FROM (SELECT AID FROM A UNION SELECT BID FROM B) AS AB, A AS a, B AS b
WHERE a.AID=AB.AID OR b.BID=AB.AID;
在A表中我有两条数据,B表中我有一条数据
结果是四条数据,B表的数据重复,我该怎么做WHERE条件,使查询出的内容没有重复啊?
大神们帮帮忙啊!!!

access不带这样写的。估计楼主之前是玩SQL Server的。
应该是:
select B.BID,A.AID from B left join A on b.bid=a.aid
左联接查询,包含左表的全部和右表相符的记录,如果A表有两条,B表有一条的话,那么其中一个BID将显示为空值。
当然内联接或者右联接也是有的。内联接是只包含完全一样的,右联接和左联接类似,不同的是包含右表全部和左表相符的记录。追问

你这结果不是我需求啊

追答

1、把其中一个表追加到另一个表中再处理。
2、联合查询。
select AID,null as BID from A
union all
select Null as AID,BID from B
然后再处理

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-31
你的目标结果是几条数据?还有UNION 用法你理解吗?(A、B表的AID 完全一致时结果显示所有列的集合,所以
A表中有两条数据,B表中有一条数据 使用UNION 关键字考虑过此处的问题没


建议把你的理想结果描述下,兴许可以帮助你解决追问

目标应该是三条数据啊,
UNION没问题,
A表的主键是AID,B表的主键是BID
A表和B表UNION之后是以AID为主要的
想通过AB表与A表或者B表的关联来显示符合条件的AB的AID

用sql语句"inner join"查询ACCESS中两个表的不用记录,老出现好多重复数 ...
这个sql文不是这么写的,不考虑性能的话,最简单 select * from 表1 where 表1.id not in (select 表2.id from 表2)

如何在access里使用vlookup?
最后,打开表A或表B看看吧!在每行的前面多了个加号,点击加号,你就会看到另一张的信息了。二、建立查询窗体法。点击【创建】下的“查询设计”,弹出的【显示表】中添加表A和表B后退出。如果你没有用上面的方法创建表A或表B间的关系,这里需要拖到表A的ID向表B的ID重叠,如果已经创建了,此步...

怎样找出两个文本文件中相同的记录
一种办法是使用数据库,例如access,新建一个空的数据库,然后导入,文件类型选择“文本文件”,选中你的文件,会弹出导入文本向导,如下操作:1. 选中带分隔符(如果你看到预览的文字有乱码的现象,选高级--代码页--简体中文(GB2312))2. 请选择字段分隔符--其他--输入| 3. 请选择数据的保存位置...

怎样找出两个文本文件中相同的记录
一种办法是使用数据库,例如access,新建一个空的数据库,然后导入,文件类型选择“文本文件”,选中你的文件,会弹出导入文本向导,如下操作:1. 选中带分隔符(如果你看到预览的文字有乱码的现象,选高级--代码页--简体中文(GB2312))2. 请选择字段分隔符--其他--输入|3. 请选择数据的保存位置 ...

怎样找出两个文本文件中相同的记录
一种办法是使用数据库,例如access,新建一个空的数据库,然后导入,文件类型选择“文本文件”,选中你的文件,会弹出导入文本向导,如下操作:1. 选中带分隔符(如果你看到预览的文字有乱码的现象,选高级--代码页--简体中文(GB2312))2. 请选择字段分隔符--其他--输入| 3. 请选择数据的保存位置...

在ACCESS里怎么实现VLOOKUP功能。
1、首先,打开ACCESS,单击查询设计,如下图所示,然后进入下一步。2、其次,选择所需的表(或查询),然后单击添加,如下图所示,然后进入下一步。3、接着,建立连接。 例如,在这种情况下,批号是公共字段。 方法是在生产表中按住批号并将其拖到检验表中的批号,如下图所示,然后进入下一步。4...

有关ACCESS的问题,请问下一下两个图代表的含义一样吗?
这是第一个图的sql语句:SELECT tStud.姓名, tCourse.课程名, tScore.成绩 FROM tStud INNER JOIN (tCourse INNER JOIN tScore ON tCourse.课程号 = tScore.课程号) ON tStud.学号 = tScore.学号;如果不出意外第二个图的sql语句也是一样的。唯一的不同可能就是里面表出现的顺序不同比如:...

ACCESS数据库分类查询后结果为什么是排序的
一种情况是该分类查询使用了 order by 排序子句强制实施了排序;另一种情况是该分类查询并没用强制排序,但是实际输出结果看起来还是排序了。导致这种现象出现的原因是比较复杂的,它是由源表的数据结构(如字段类型、索引等)、SQL语句的写法和数据库引擎执行SQL语句的内部算法综合作用导致的。下面举个简单...

【数据库】Access数据库字段为空判断问题
所以在查询条件中我们把这两种情况都考虑到就好了 access中好像有个空值替换函数 nz 所以就这样写 Select count(*)from Sk_NetRefer where nz(gztime,'')=''

明明是2008年的日期存入access数据库后变成1905年了,请教高手是怎么回事...
今天在做access数据库插入操作的时候,发现一个奇怪的现象,数据库表的字段是“短日期”类型,将当前日期“2009-07-01”插入到该字段却变成了1905-6-23,最后发现引起这个奇怪现象应该跟“短日期”类型有关系,短日期类型小于10的数字前面是没有“0”的,而当前日期“2009-07-01”有“0”,之所以变成...

相似回答