1

ここにSQLフィドルがあります: http://www.sqlfiddle.com/#!2/fbd48/1

色は花は赤、熊は茶色のはずなのに、どちらも赤く見えてしまいます。

COALESCE がここに収まるかどうかはわかりませんが、ここで同様の回答が受け入れられました: MySQL - テーブル内の行の値に応じて異なるテーブルから行の値を取得する

4

2 に答える 2

2
SELECT mem.member_name, g.*
, coalesce(f.flower_color, b.bear_color) as color
from members mem
inner join general g on mem.member_id = g.member_id
left join flowers f on g.gift_item_id = f.flower_id AND g.gift_item = 'flower'
left join bears b on g.gift_item_id = b.bear_id AND g.gift_item = 'bear'
WHERE g.month='june'

花とクマを区別する方法がなかったので、結合にテストを追加しました。これはかなり臭いです。スキーマを再考するかもしれません。

于 2012-04-27T18:46:47.920 に答える
1

一意のギフト アイテム ID を使用すると機能するようです。

http://www.sqlfiddle.com/#!2/c02c8/1

于 2012-04-27T18:44:29.193 に答える