テーブルT1があります
ID STATUS
1 NEW
2 CLOSED
3 NEW
テーブルT2があります
ID OWNER
1 A
1 B
1 C
1 A
1 B
2 A
2 B
2 A
3 A
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
そのため、重複(同じIDの同じ所有者を複数回)を削除する必要があることがわかります。 IDのリストとそのIDのすべての異なるOWNERとして出力する必要があるだけですが、T2テーブルで彼が何回担当したかは重要ではありません。どういうわけか区別する必要があります。
このようなクエリを実行すると、IDとOWNERごとに異なる値が取得されませんが、この場合も重複しています。
select t1.id,t1.status,t2.owner
FROM t1
join t2
on t1.id=t2.id
私が正しく理解しているなら、これが必要です:
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
URLクエリで個別のキーワードを使用して、目的の結果を得ることができます。
select distinct t1.id,t1.status,t2.owner
FROM t1
join t2
on t1.id=t2.id
with T2b as (
select * from (
select t2.*, rownumber() over(partition by t2.ID, t2.OWNER ) rang
from t2
) tmp
where rang=1
)
select t1.*, T2b.OWNER
from t1 inner join T2b on t1.id=T2b.id