php - 在 COUNT SQL 查询中将 NULL 包含为 0

标签 php html mysql sql ajax

我知道事实上这个问题之前已经被问过几次了,但是与此相关的回答问题似乎都不起作用或者对我来说太令人困惑了..

我也许应该解释一下。

我正在尝试创建一个 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/EGeR3On

调色板表: 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/

相关文章:

javascript - 从 Javascript 向 Servlet 发送数据的问题

html - div Img 背景在我的 CSS 中不起作用

sql - 每个派生表都必须有自己的别名错误

php - 根据列值更新不同表中的不同列

php - 在 null [LARAVEL] 上调用成员函数 update()

html - 如何在绝对位置父级上设置子级高度

php - 警告 : Invalid argument supplied for foreach() php

php - 在文本框中保存 ' to database, i get\' 时

php - 通用反序列化: JSON ID value to Object

php - 如何让 MonoLog 的 ErrorHandler 输出到 stdout?