为 Access 中的 JOIN 中的第二个重复行返回 null
Posted
技术标签:
【中文标题】为 Access 中的 JOIN 中的第二个重复行返回 null【英文标题】:Return null for second duplicate row in JOIN in Access 【发布时间】:2015-11-21 09:12:55 【问题描述】:我看到了一些避免重复的帖子。但这并不是要从输出中删除重复项。但保留一个表中的重复项,但避免从连接表中重复行。
所以我有 2 个表 Table1 和 Table2 。表 1 的 ID 列具有重复值。表 2 没有 ID 列的重复值。我希望加入这两个表。在结果中,我希望 Table1 中的所有行包括重复项,但我不希望 Table2 为 Table1 中的每个重复行重复行。
Table1
ID Column2
1 A
1 B
2 C
3 D
Table2
ID Column3
1 X
2 Y
我的查询是
Select A.ID,A.Column2,B.ID,B.Column3 from Table1 A LEFT JOIN Table2 B on A.ID=B.ID
我得到的结果是
ID Column2 ID Column3
1 A 1 X
1 B 1 X
2 C 2 Y
3 D null null
预期结果是
ID Column2 ID Column3
1 A 1 X
1 B null null
2 C 2 Y
3 D null null
我在 access 数据库中看不到任何可能性。
如果有可能得到这个结果,请告诉我
【问题讨论】:
【参考方案1】:我现在不能检查,但你会明白的:
select t11.id, t11.col2, t2.id, t2.col3
from (table1 t11
left join (select id, min(col2) as col2 from table1 group by id) t12
on t11.id = t12.id and t11.col2 = t12.col2)
left join table2 t2 on t12.id = t2.id
【讨论】:
以上是关于为 Access 中的 JOIN 中的第二个重复行返回 null的主要内容,如果未能解决你的问题,请参考以下文章
将第一个文件的第一列与第二个文件中的行匹配,然后将第二个文件中匹配行的最后一列插入第一个文件中的新第一列
如何在 Oracle 表的 varchar 列中的第二个和第四个字符之后插入“/”