access 中left join 数据重复的问题

SELECT 表1.[aa], 表2.[cc], 表1.[bb], 表1.[dd]

FROM 表1 LEFT JOIN 表2 ON 表1.[dd] = 表2.[cc]

我想要的是表1如果有100条数据,结果就显示100条(已表一为基准),后面去匹配表2的数据,可是出来的数据好多都是重复的,不知道怎么去添加语句,麻烦高手帮忙,急,在线等!

因为多表连接输出的行集是按关联字段的所有可能的组合(也就是笛卡尔乘积)来输出连接后的记录行集的。当连接属于多对多时,必然会导致连接后记录行变多的情况。解决连接后导致的记录行增多的问题可以有多种方式。

本人推荐用将多对多改为一对多连接的办法来处理,因为1乘以任何数还是任何数。题主可以这样修改自己的SQL:


SELECT a.[aa], b.[cc], a.[bb], a.[dd] FROM 
表1 a LEFT JOIN (select distinct cc from 表2) b 
ON a.[dd] = b.[cc]

温馨提示:内容为网友见解,仅供参考
无其他回答

access 中left join 数据重复的问题
因为多表连接输出的行集是按关联字段的所有可能的组合(也就是笛卡尔乘积)来输出连接后的记录行集的。当连接属于多对多时,必然会导致连接后记录行变多的情况。解决连接后导致的记录行增多的问题可以有多种方式。本人推荐用将多对多改为一对多连接的办法来处理,因为1乘以任何数还是任何数。题主可以这...

Access中如何同时删除两个表中ID相同的记录
其它回答: 在Access或SQL SERVER中用SQL删除重复记录的N种方法 2009-11-10 16:34 例如: id name value 1 a pp 2 a pp 3 b iii 4 b pp 5 b pp 6 c pp 7 c pp 8 c iii id是主键 要求得到这样的结果 id name value 1 a pp 3 b iii 4 b pp 6 c pp 8 c iii 方法1 del...

Access中如何同时删除两个表中ID相同的记录
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录...

access 查询问题 AB表查重复的和不重复的人
这样就行,注意a、b表编辑连接属性时要选择3才行,如下:相对应上面内容的sql语句,如下:SELECT b.姓名, a.地址, a.邮编, a.emailFROM a RIGHT JOIN b ON a.姓名 = b.姓名;

access中判断一列中上下数据是否相同,若相同新编号相同
建立表2(其它数据同表1,【新编号】空白,可以先复制表1为表2然後在表2中添加【新编号】字段),执行以下代码:dim rs as new adodb.recordset dim a dim b rs.open "select * from 表2",currentproject.connection,1,3 rs.movefirst b=1 a=rs!订单编号 do until rs.eof rs.movenext if ...

LEFT JOIN连接SQL语句在Access里面报语法错误(操作符丢失),哪位帮帮忙...
Access数据库,在使用left join连接两个以上的表时,会报错:语法错误,操作符丢失等问题。解决其实很简单,就是得加括号:select * from ((c left join a on a.id=c.aid)left join b on b.id=c.bid)不知道你最后解决了没 发现access数据库真实麻烦的狠啊 各种莫名其妙的错误 ...

dbaccess数据库left join连接问题,left join语法在dbaccess数据库为句法...
ORDER BY fl_dwzhzcxx.zcrq]. AS lin LEFT JOIN [select bdh,sum(dwzcjelj4-dwzcjelj) as jsje,jsrq from fl_dwjzjs where mid(bdh,8,3)='270'and (dwzcjelj4-dwzcjelj)<>0 group by bdh,jsrq order by jsrq ]. AS lin2 ON (lin.zcrq = lin2.jsrq) AND (lin.bdh = ...

请问:access 查询: 如何将几个表中相同字段的值 相加
先把两个表union起来再求和。注意这里不能用inner join, left join或者right join,否则会将其中一个表独有的记录遗漏,比如说A表只有张三李四,而B表只有王五,任何一种join都会遗漏至少一个记录,所以先union再求和才正确。select name, sum(字段1), sum(字段2) from (select 字段1,字段2 from ...

一个关于ACCESS的问题
用这种方法建立了关系的数据只需要通过一个主题就可以调出来使用,非常方便。当我们在“客户信息表”和“订单信息表”中建立这样的关系以后,只需要看看“客户信息表”,在不增加表内容的情况下,就可以看到所有客户的信息及其所有“订单”的情况,使这些数据一目了然。access数据库是一种关系型数据库,...

急access如何筛选两表相同字段中的不同数据
(找出两表都有的数据.)(假如要找出表1有而表2没有的数据)建立第二个查询如下(查询2):SELECT 表1.字段1 FROM 表1 LEFT JOIN 查询1 ON 表1.字段1 = 查询1.字段1 WHERE (((表1.字段1) Is Not Null) AND ((查询1.字段1) Is Null));同样的方法可以找出表2有而表1没有的数据.

相似回答