我看到很少有帖子可以避免重复。但这不是要从输出中删除重复项。但保留一个表的重复,但避免从连接表重复的行。
所以我有2个表Table1和Table2。 Table1具有ID列的重复值。 Table2没有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
我在访问数据库中看不到任何可能性。
如果有可能获得此结果,请告诉我
答案 0 :(得分:2)
我现在无法检查,但你会明白这个想法:
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