【发布时间】:2020-09-17 13:49:54
【问题描述】:
如果我的查询结构如下:
SELECT DISTINCT TBL1.Name, TBL2.Month, TBL3.Month
FROM (TBL1
LEFT JOIN TBL2 ON TBL1.Name = TBL2.Name)
LEFT JOIN TBL3 ON TBL1.Name = TBL3.Name
产生如下结果:
TBL1.Name|TBL2.Month|TBL3.Month
-----------------------------
Name1 |7 |8
Name1 |8 |8
Name2 |8 |8
Name3 |8 |
Name4 | |8
第一行的结果是导致我的问题的原因。 TBL3.Month 需要为 NULL(或空白),因为 TBL2 和 TBL3 中的月份不匹配。
第四行是准确的,TBL3 中没有第 8 个月的记录,所以它准确地反映了 NULL。
同样,第五行准确地表示了第 8 个月的 TBL2 缺失数据。
表中的数据是一种简单的格式,如下所示:
TBL1
Name
----
Name1
Name2
Name3
Name4
TBL2
Name |Month
------------
Name1 |7
Name1 |8
Name2 |8
Name3 |8
TBL3
Name |Month
------------
Name1 |8
Name2 |8
Name3 |8
Name4 |8
所需的输出如下所示:
TBL1.Name|TBL2.Month|TBL3.Month
-----------------------------
Name1 |7 |
Name1 |8 |8
Name2 |8 |8
Name3 |8 |
Name4 | |8
【问题讨论】:
-
您应该提供示例数据。
-
。 .请显示您开始使用的数据。
-
对不起,我希望更新能画出更清晰的画面
-
如果 Access 的限制阻止单个查询工作(即嵌套的 select 语句),我也不反对在查询中使用子查询
-
在 MS Access 中使用准确的发布数据和查询,我无法重现第一组结果。除了第 4 行之外,我确实重现了您想要的结果。不确定为什么缺少值,因为在
TBL3中有一个非空值Name3。我的猜测是在TBL3中为Name1、Name2和Name4填充了数据,它再现了原始结果。请仔细检查您的数据。