2012-03-22 8 views
2

私は3つのテーブルを持っています。テーブル1,2と3を照会し、テーブル2とテーブル3のC1をそれぞれ選択して結果を得ます。これを得る方法はありますか? enter image description here3つのテーブルを結合して2つの行だけを得る

+1

表2のC1及び表3のC1でdublicatesがあるときにどうしますか?例えば。表2はエントリ「A、1」を有し、表3はエントリ「A、4」を有する。 – Martijn

+0

@Martijn表2と表3は一意に異なる値を持っています – kinkajou

+0

Mark Ba​​nnisterに答えがあります。この制約はSQLでは強制できません。データモデルを再考するのは良い考えです。 – Martijn

答えて

4

はい:

select t1.c1, coalesce(t2.c2, t3.c2) c2 
from Table1 t1 
left join Table2 t2 on t1.c1 = t2.c1 
left join Table3 t3 on t1.c1 = t3.c1 
1

次のことを試してみてください。

SELECT T1.C1, T2.C2 
FROM T1 
INNER JOIN T1.C1 = T2.C1 
UNION ALL 
SELECT T1.C1, T3.C2 
FROM T1 
INNER JOIN T1.C1 = T3.C1 
関連する問題