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]

温馨提示:答案为网友推荐,仅供参考