【发布时间】:2017-10-09 19:17:03
【问题描述】:
为了获得models 表的趋势列表,我使用了一个查询,该查询将过去30 天内medias 表中model_id 的出现分组。
SELECT models.*,medias.model_id, COUNT(model_id) AS OCCURENCE
FROM medias
JOIN models ON models.id = medias.model_id
WHERE medias.date > DATE_SUB(CURDATE(), INTERVAL 30 DAY)
GROUP BY medias.model_id
ORDER BY OCCURENCE DESC
LIMIT '.$limit.' OFFSET '.$offset
但是,在这个查询中,我想找到一种方法来添加 models 表的其余部分,它会返回过去 30 天的趋势列表,然后是所有时间的趋势列表。
WHERE medias.date > DATE_SUB(CURDATE(), INTERVAL 30 DAY) ---> Then Infinite
【问题讨论】:
-
你的最后一段对我来说没有任何意义。我不知道你想做什么。
-
这是无效的标准 SQL - 您使用的是哪个 DBMS 产品?
-
我使用 mySQL ...
-
分组依据无效。不会在较新的 MySQL 版本上执行(除非在兼容模式下),可能会在较旧的 MySQL 版本上返回不可预测的结果。一般的 GROUP BY 规则说:如果指定了 GROUP BY 子句,则 SELECT 列表中的每个列引用必须要么标识一个分组列,要么是一个集合函数的参数!