为空白的 LEFT JOIN 设置 0 结果?
Posted
技术标签:
【中文标题】为空白的 LEFT JOIN 设置 0 结果?【英文标题】:Set a 0 result for LEFT JOIN that is blank? 【发布时间】:2012-04-09 16:01:46 【问题描述】:我有两个通过外键“ID”连接的表:
表 A 有 ID,MONTH,VOTES 以及表 B ID,MONTH,OTHER_VOTES。
table A 和 table B 如预期的那样收集选票。并非所有时间都有这两种投票。
我想LEFT JOIN
B 到 A 以便在 OTHER_VOTES 不存在的月份(无,空)我会得到 0 而不是空单元格。
这可能吗?
谢谢!
【问题讨论】:
【参考方案1】:确实如此。在选择列的地方,使用IFNULL(OTHER_VOTES, 0)
。
【讨论】:
出于我自己的好奇,这与COALESCE(OTHER_VOTES, 0)
相同还是IFNULL(OTHER_VOTES, 0)
在这种情况下效果更好?如果COALESCE
做了几乎相同的事情(可能开销更少?),试图找出为什么存在IFNULL
函数。
coalesce 接受任意数量的可能为空的值,并简单地挑选出第一个非空值。如果您只检查单个字段/值是否为空,请使用 IF()。以上是关于为空白的 LEFT JOIN 设置 0 结果?的主要内容,如果未能解决你的问题,请参考以下文章