0

IF ELSE列の値が指定されたテキストと一致するときに、SQLクエリ内のステートメントを使用して複数のテーブルを結合したい。

チェックしたとcoloumnName='Value'します。次に、追加のテーブルに参加します。そうでなければ、私はそれに参加したくありません。これは可能ですか?どうやってやるの?

4

1 に答える 1

1

テーブルを条件付きで結合することはできません 外部結合を使用してすべてのテーブルを無条件で結合し、結合条件で条件を使用して、次のように返されたデータ セットから必要な値を選択する必要があります。

select r.id, p.name, a.name, t.name
from requests r
left outer join person p on r.type='person' and r.item_id = p.id
left outer join animal a on r.type='animal' and r.item_id = a.id
left outer join thing t on r.type='thing' and r.item_id = t.id

上記の例はitem_id、人、動物、または物を参照する を持つ「リクエスト」を示しています。type列によって、参照されるテーブルが決まります。

結果には の 3 つの列がnameあり、そのうちの最大 1 つが非 null になります。

于 2012-09-12T13:46:30.207 に答える