1

問題に直行させてください.Here's my sql fiddle sql fiddle

今私の要件は、次の条件の下でテーブル A で結合ステートメントを使用して、テーブル B またはテーブル C のいずれかから名前の列を取得することです。

If result is present in table B retrieve name from table B and ignore table C
else retrieve name field from table c

基本的に私は次の結果が必要です

1 AB name1
2 BC name2
3 CD name3
4

3 に答える 3

2
select id,A.column1,D.name from A left join 
(select * from B union select * from C) as D on A.column1=D.column1
于 2013-10-23T05:34:23.417 に答える
0

あなたが言ったようにif文をする必要はありません。次のことを試してください。

 select A.id, A.column1 from A left join B on A.column1 = B.column1 
 left join C on C.column1 = A.column1;

SQL フィドル

于 2013-10-23T05:35:26.283 に答える
0
select * from B
UNION 
select * from C where column1 not in (select column1 from B)
order by name

SQL フィドル リンク: http://sqlfiddle.com/#!2/5f4f4/16

于 2013-10-23T05:34:15.023 に答える