我知道事实上这个问题之前已经被问过几次了,但是与此相关的回答问题似乎都不起作用或者对我来说太令人困惑了..
我也许应该解释一下。
我正在尝试创建一个 AJAX 脚本来运行,以按“喜欢”的数量对某些结果进行排序。
我当前的代码是这样的:
SELECT COUNT(*) AS total, likes.palette_id, palette.*
FROM likes LEFT JOIN palette ON likes.palette_id = palette.palette_id
GROUP BY likes.palette_id
ORDER BY total DESC
这工作正常,但是由于显而易见的原因,它没有列出 0 个喜欢的结果,它们不存在于表中。
我已附加当前表格的图像:
调色板表: http://imgur.com/fKZmSve
在用户点击“赞”之前,赞表中不会有任何结果。然后数据库会被更新,palette_id 和 user_id 会被插入。
我正在尝试计算 *palette_id* 在“喜欢”表中出现的次数,但对于未出现在“喜欢”表中的所有调色板也显示 0。
这可能吗?如果是这样,有人可以帮助我吗?
谢谢
最佳答案
这可能不是准确的 MySQL 语法(我习惯了 SQL Server),但如果需要的话应该可以非常直接地进行翻译。
SELECT p.*, IFNULL(l.total, 0) AS total
FROM palette p
LEFT JOIN (
SELECT palette_id, COUNT(*) AS total
FROM likes
GROUP BY palette_id
) l
ON l.palette_id = p.palette_id
ORDER BY total
关于php - 在 COUNT SQL 查询中将 NULL 包含为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19579813/