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