Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:查询中带有COUNT和groupby的WHERE子句?_Mysql_Sql - Fatal编程技术网

MySQL:查询中带有COUNT和groupby的WHERE子句?

MySQL:查询中带有COUNT和groupby的WHERE子句?,mysql,sql,Mysql,Sql,对于我的广告使用的每个类别,我想显示广告的总数 我当前的查询如下所示: SELECT categories_adverts.category, COUNT(adverts.id) AS numberOfAdverts FROM adverts LEFT JOIN categories_adverts ON adverts.id_categories_adverts=categories_adverts.id GROUP BY category ASC 我正在努力加入WHERE条

对于我的广告使用的每个类别,我想显示广告的总数

我当前的查询如下所示:

SELECT
    categories_adverts.category,
    COUNT(adverts.id) AS numberOfAdverts
FROM adverts
LEFT JOIN categories_adverts
ON adverts.id_categories_adverts=categories_adverts.id
GROUP BY category ASC
我正在努力加入WHERE条款,该条款规定只有那些持续时间仍然有效的广告才会显示。我试图在广告和左加入之间加入以下条款…:

WHERE TIME_TO_SEC(timediff(now(),adverts.stamp_created))<=adverts.duration
所以整个查询都是这样的,但这不起作用:

SELECT
    categories_adverts.category,
    COUNT(adverts.id) AS numberOfAdverts
FROM adverts
WHERE TIME_TO_SEC(timediff(now(),adverts.stamp_created))<=adverts.duration
LEFT JOIN categories_adverts
ON adverts.id_categories_adverts=categories_adverts.id
GROUP BY category ASC
查询出了什么问题?

where子句位于联接之后


WHERE子句应该在联接之后、分组和排序之前, 像这样:

SELECT
    categories_adverts.category,
    COUNT(adverts.id) AS numberOfAdverts
FROM adverts
LEFT JOIN categories_adverts
ON adverts.id_categories_adverts=categories_adverts.id
GROUP BY category ASC
选择 类别(u广告)类别,, COUNTadverts.id作为numberOfAdverts 从广告中 左联合广告 关于adverts.id\u categories\u adverts=categories\u adverts.id 时间到现在,创建了adverts.stamp