基本上我希望一列在 null 时返回 0。我在嵌套语句中使用 ifnull,当我自己运行嵌套语句时,列返回 0,但是当我运行整个查询时,我再次得到 NULL。这是我的代码:
SELECT Text, Verbo, Objeto, mPosts FROM Posts
LEFT JOIN (SELECT ID, IFNULL(COUNT(*),0) AS mPosts FROM `Posts` WHERE Date >= DATE_ADD(CURDATE(), INTERVAL -30 DAY) GROUP BY `Verbo`,`Objeto`) AS B ON Posts.ID = B.ID
我可以将 IFNULL 移动到主 select 语句,但我不希望:
SELECT Text, Verbo, Objeto, IFNULL(mPosts,0) FROM Posts
LEFT JOIN (SELECT ID, COUNT(*) AS mPosts FROM `Posts` WHERE Date >= DATE_ADD(CURDATE(), INTERVAL -30 DAY) GROUP BY `Verbo`,`Objeto`) AS B ON Posts.ID = B.ID
为什么我不能在嵌套语句上做到这一点?可以以其他任何方式完成,以便我不必在主查询中使用它吗?