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

标签 mysql select join coalesce

我这里有一个 sql fiddle : http://www.sqlfiddle.com/#!2/fbd48/1

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

不确定 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'

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

关于MySql - 使用 COALESCE 检索正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10356083/

相关文章:

php一次将数据插入具有多个ID的数据库?

mysql - 将SQL查询结果存储在变量中

jquery - 如何设置 <select> 元素的样式?

MySQL Select 语法给我每个 id 输出两行,有什么问题吗?

python - 在 Python 中处理线程连接的正确方法

mysql - 如何使用 join 优化查询

mysql - SQL从多行创建一个数组

php - 如何从表中删除除最新的 10 行之外的所有行

mysql - 在 mac OS 上安装 percona 服务器找不到符号 : _clock_gettime

php - 带有 $_POST 的 PDO bindParam 不工作