【问题标题】:Set a 0 result for LEFT JOIN that is blank?为空白的 LEFT JOIN 设置 0 结果?
【发布时间】: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 而不是空单元格。

这可能吗?

谢谢!

【问题讨论】:

    标签: php mysql sql join


    【解决方案1】:

    确实如此。在选择列的地方,使用IFNULL(OTHER_VOTES, 0)

    【讨论】:

    • 出于我自己的好奇,这与COALESCE(OTHER_VOTES, 0) 相同还是IFNULL(OTHER_VOTES, 0) 在这种情况下效果更好?如果COALESCE 做了几乎相同的事情(可能开销更​​少?),试图找出为什么存在IFNULL 函数。
    • coalesce 接受任意数量的可能为空的值,并简单地挑选出第一个非空值。如果您只检查单个字段/值是否为空,请使用 IF()。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2015-12-04
    相关资源
    最近更新 更多