gpt4 book ai didi

php - MySQL查询with/COUNT()和HAVING基于日期比较

转载 作者:行者123 更新时间:2023-11-29 01:46:07 33 4
gpt4 key购买 nike

我试图将我的计数结果限制为满足特定条件的结果。我目前正在使用 WHERE 子句,我的输出符合预期。

这是我当前的查询,如您所见,*ads_list* 和 *ads_cate* 记录只有在我的 WHERE recdate 达到 14 天标记时才会被提取:

$queryCats = "
SELECT ads_cate.cateName, COUNT(ads_list.Title)
FROM
ads_cate
JOIN ads_list ON ads_cate.id = ads_list.category
WHERE to_days(now())<=(to_days(recdate)+14)
GROUP BY ads_cate.cateName";

我希望检索所有类别和广告,但只有当它们满足我的 WHERE 子句条件时才计算在内。我一直在使用 HAVING,运气为 0,如下所示。也许有更好的方法?

$queryCats = "
SELECT ads_cate.cateName, ads_list.recdate, COUNT(ads_list.Title)
FROM
ads_cate
JOIN ads_list ON ads_cate.id = ads_list.category
GROUP BY ads_cate.cateName
HAVING to_days(now())<=(to_days(recdate)+14)";

最佳答案

尝试使用 LEFT JOIN 并将日期测试作为连接条件的一部分:

SELECT ac.cateName, COUNT(al.Title)
FROM ads_cate ac
LEFT JOIN ads_list al
ON ac.id = al.category
AND to_days(now())<=(to_days(al.recdate)+14)
GROUP BY ac.cateName

关于php - MySQL查询with/COUNT()和HAVING基于日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6459916/

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