ここにSQLフィドルがあります: http://www.sqlfiddle.com/#!2/fbd48/1
色は花は赤、熊は茶色のはずなのに、どちらも赤く見えてしまいます。
COALESCE がここに収まるかどうかはわかりませんが、ここで同様の回答が受け入れられました: MySQL - テーブル内の行の値に応じて異なるテーブルから行の値を取得する
ここにSQLフィドルがあります: http://www.sqlfiddle.com/#!2/fbd48/1
色は花は赤、熊は茶色のはずなのに、どちらも赤く見えてしまいます。
COALESCE がここに収まるかどうかはわかりませんが、ここで同様の回答が受け入れられました: MySQL - テーブル内の行の値に応じて異なるテーブルから行の値を取得する
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'
花とクマを区別する方法がなかったので、結合にテストを追加しました。これはかなり臭いです。スキーマを再考するかもしれません。
一意のギフト アイテム ID を使用すると機能するようです。