Dej*_*jan 5 sql db2 select join duplicates
我有桌子T1
ID STATUS
1 NEW
2 CLOSED
3 NEW
Run Code Online (Sandbox Code Playgroud)
我有T2表
ID OWNER
1 A
1 B
1 C
1 A
1 B
2 A
2 B
2 A
3 A
Run Code Online (Sandbox Code Playgroud)
我想加入T1和T2,并为每个不同的ID和每个不同的OWNER提供多行.如果OWNER在T2中重复多次,应该被忽略,并且应该删除重复项.
所以最终的期望结果应该是:
ID STATUS OWNER
1 NEW A
1 NEW B
1 NEW C
2 CLOSED A
2 CLOSED B
3 NEW A
Run Code Online (Sandbox Code Playgroud)
因此,您可以看到应删除重复项(多次使用相同ID的相同所有者).我只需要输出作为ID的列表以及该ID的每个不同的OWNER,但是在T2表中他负责的次数并不重要.我需要以某种方式区分.
如果我像这样执行查询,我没有获得每个ID和OWNER的不同值,但在这种情况下我也有重复项.
select t1.id,t1.status,t2.owner
FROM t1
join t2
on t1.id=t2.id
Run Code Online (Sandbox Code Playgroud)
先感谢您
Oto*_*dze 10
如果我正确理解,你需要这个:
select T1.ID, T1.STATUS, t.OWNER from T1
inner join(
select ID, OWNER from T2 group by ID, OWNER
) t
on T1.ID = t.ID
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以在查询中使用不同的 keyward 来获得所需的结果。
select distinct t1.id,t1.status,t2.owner
FROM t1
join t2
on t1.id=t2.id
Run Code Online (Sandbox Code Playgroud)