MySql-使用COALESCE检索正确的值?

MySql-使用COALESCE检索正确的值?,mysql,select,join,coalesce,Mysql,Select,Join,Coalesce,我这里有一个sql小提琴: 花的颜色应该是红色,熊的颜色应该是棕色,但两者都是红色 不确定COALESCE是否适用于此处,但在此处类似的问题的公认答案中: 如果您使用唯一的礼品ID,这似乎是可行的 没有办法区分花和熊,所以我在连接中添加了测试。这真臭。您可能会重新考虑您的模式。I know:)但ID在不同的表中可能是相同的,因此我正在寻找一种基于“花”或“熊”区分的解决方案,而不是遇到IDShow的问题?如在数据库上的繁重查询或凌乱查询中,您将礼物的类型编码在表名和常规表中。如果你想给某人一

我这里有一个sql小提琴:

花的颜色应该是红色,熊的颜色应该是棕色,但两者都是红色

不确定COALESCE是否适用于此处,但在此处类似的问题的公认答案中:

如果您使用唯一的礼品ID,这似乎是可行的


没有办法区分花和熊,所以我在连接中添加了测试。这真臭。您可能会重新考虑您的模式。

I know:)但ID在不同的表中可能是相同的,因此我正在寻找一种基于“花”或“熊”区分的解决方案,而不是遇到IDShow的问题?如在数据库上的繁重查询或凌乱查询中,您将礼物的类型编码在表名和常规表中。如果你想给某人一个有趣的气球,你有很多工作要做。带有礼品类型字段的单个礼品表可能是更好的方法。
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'