我有一个SQL小提琴这里: http://www.sqlfiddle.com/#!2/fbd48/1MySql - 使用COALESCE检索正确的值?
的颜色应该是红色的花和棕色的熊,但它显示红色两种。
不知道是否适合COALESCE在这里,但在接受的答案类似的东西在这里: MySQL - Retrieve row value from different table depending on value of row in a table
我有一个SQL小提琴这里: http://www.sqlfiddle.com/#!2/fbd48/1MySql - 使用COALESCE检索正确的值?
的颜色应该是红色的花和棕色的熊,但它显示红色两种。
不知道是否适合COALESCE在这里,但在接受的答案类似的东西在这里: MySQL - Retrieve row value from different table depending on value of row in a table
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工作。
我知道:)但ID可以在不同的表中相同,所以我正在寻找一个解决方案,将基于'花'或'熊'来区分,而不是遇到ID的问题 – Wonka 2012-04-27 18:46:19
臭臭怎么回事?在数据库或混乱的查询中沉重? – Wonka 2012-04-27 18:55:02
您有在表格名称和常规表格中编码的礼物类型。如果你想给人一个有趣的气球,你就有很多工作要做。带有gift_type字段的单个礼品表可能是更好的方法。 – Andrew 2012-04-27 19:01:23