奇怪的访问LEFT JOIN导致重复

时间:2013-11-24 17:00:51

标签: sql ms-access left-join

table m:
ID
1
2
3
4

table y:
id name
1  Lu
2  Os
3  It
3  Ri

SELECT m.id, y.*
FROM my as m
LEFT JOIN your as y ON my.id = y.mID

我希望my加入的每个结果都会返回

1 Lu
2 Os
3 It
3 Ri
4 

为什么有3个,3个重复?我希望结果像1,2,3,4。

2 个答案:

答案 0 :(得分:0)

表y中有两个值,ID为3,这使得它返回ID 3的两倍。并且你没有id 4的任何匹配,使得它返回null:

ID  NAME
1   Lu
2   Os
3   It
3   Ri
4   (null)

如果您希望它为1,2,3,4,则必须将表y中的3 Ri更新为4 Ri。

答案 1 :(得分:0)

原谅我,但查询结果唯一奇怪的是你对它们应该是什么的期望。 Access正在处理该查询,就像任何其他SQL数据库一样(或者至少是处理过的任何其他SQL数据库)。

如果你真的只想要返回4行,那么你需要使用聚合查询,类似这样的

SELECT m.id, MIN(y.name) AS [name]
  FROM my as m
  LEFT JOIN 
  your as y 
    ON m.id = y.mID
GROUP BY m.id