我在Access 2010中创建了一个查询,该查询将右表中的数字映射到左表中。当我运行查询时,我得到的结果少于左表中的记录总数,我想知道为什么?似乎有些记录被遗漏了。有人知道我做错了吗?
编辑:我无法发布图片,所以我将以简化的方式在此处绘制:
-table 1 ....-........- table 2 ...-..........- table 3 ... -
- 数字1 - 。< - > .-数字1 -...- xxxxxxxx ...-
-xxxxxxxx ...-.......-数字2 - ..< - > ..-数字2 -
查询:
SELECT [2007].[Analyse (Nummer)],
[2007].[Analyse (Name)],
[2007].Faktura, BKPF2007.Referenz,
BSET.St
FROM BSET
INNER JOIN (2007 INNER JOIN BKPF2007 ON [2007].[Faktura] = BKPF2007.[Belegnr])
ON BSET.[Belegnr] = BKPF2007.[Referenz]
GROUP BY [2007].[Analyse (Nummer)],
[2007].[Analyse (Name)],
[2007].Faktura,
BKPF2007.Art,
BKPF2007.Referenz,
BSET.St;
答案 0 :(得分:1)
这是JOIN的一项功能 - 它不会显示不匹配的记录。如果没有详细说明,我可以提出一些建议。
答案 1 :(得分:0)
这是您的结果被过滤的原因:
INNER JOIN
您需要将其设为LEFT JOIN
,以便将所有结果保留在右表中不存在结果的位置。