JOIN之后的SQL删除重复的行

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)