gpt4 book ai didi

MySQL 查询返回错误值的计数

转载 作者:行者123 更新时间:2023-11-29 12:31:45 24 4
gpt4 key购买 nike

因此,即使没有与列表相关的任务,此查询也会返回结果 1。如何修复它,以便对于零任务的列表返回 0?

SELECT 
l.list_id, l.list_name, l.list_time_created,
COUNT(CASE WHEN t.task_id IS NULL THEN 0 ELSE 1 END) AS numberOfTasks,
SUM(CASE WHEN t.task_completed IS NULL THEN 0 ELSE t.task_completed END) AS numberOfCompletedTasks
FROM list l
LEFT JOIN task t ON l.list_id = t.list_id
WHERE l.user_id = ':user_id'
GROUP BY l.list_id;

最佳答案

如果没有任务,则行将被过滤掉。您想要左连接:

SELECT l.list_id, l.list_name, l.list_time_created,
COUNT(t.task_id ) AS numberofTasks,
SUM(t.task_completed = 1) AS numberofCompletedTasks
FROM list l LEFT JOIN
task t
ON l.list_id = t.list_id
WHERE l.user_id = ':user_id'
GROUP BY l.list_id;

我引入了表别名。这些使得查询更容易编写和阅读。

我还简化了 numberofCompletedTasks 的逻辑。你原来的公式很好(甚至是标准 SQL),但是 MySQL 有一个很好的捷径。

关于MySQL 查询返回错误值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27379886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com