SQL内部联接在访问表中返回重复项

时间:2014-04-10 14:52:06

标签: sql ms-access

我有一张映射表(为简单起见,我只显示 BNO = 14M301

的记录
  BNO   EID EDescription

 14M301 4010     W Harness
 14M301 5027    E Wiring part

我有另一张表(Base)包含7条记录,对应 BNO = 14M301

  Prev      Base    Sufv    Sequence  CPSD    BNO        BNO-CPSC
  3M5T  14M301      AAB      234    180101   14M301      14M301-180101   
  3M5T  14M301      ABB      234    180101   14M301      14M301-180101 
  3M5T  14M301      SB       234    180101   14M301      14M301-180101 
  AV6T  14M301      DB       234    180101   14M301      14M301-180101
  AV6T  14M301      FB       234    180101   14M301      14M301-180101
  F1F1  14M301      AB       294    030304   14M301      030304-180101
  F1F1  14M301      BA       294    030304   14M301      030304-180101

我在这里用 BNO 加入两张桌子。我正在使用内连接。它是14个记录而不是7个记录,即BNO-14M301 = 14次。但在 Base 表中,它只包含7.我的查询

SELECT Base.Prev, Base.Base, Base.Sufv,Base.Sequence, Base.CPSD, Base.BNO, Base.[BNO - CPSD], Mapping.EID AS [E ID], Mapping.[EDescription] AS [E Description]
FROM Base INNER JOIN Mapping ON Base.BNO = Mapping.BNO WHERE (((Mapping.EID) Is Not Null));

1 个答案:

答案 0 :(得分:0)

BNO 14M301出现在您的映射表中两次。因此,当您加入Base表时,您将获得所有7条记录两次(对于映射表中的每个连接行一次)。