【发布时间】:2011-01-28 23:33:18
【问题描述】:
我有两张桌子:
posts{id,post,tag_id,date}
tags{id,tag,date}
我想从 post 表中检索最近 12 小时内使用的最流行的标签。
¿我怎样才能做到这一点?
谢谢。
【问题讨论】:
-
tags日期表示什么? -
标签的创建时间!!我更关心 post 表中的日期,以获取最新的 12 小时
我有两张桌子:
posts{id,post,tag_id,date}
tags{id,tag,date}
我想从 post 表中检索最近 12 小时内使用的最流行的标签。
¿我怎样才能做到这一点?
谢谢。
【问题讨论】:
tags 日期表示什么?
我认为这应该可行:
SELECT tags.tag, count(*) AS count
FROM posts INNER JOIN tags
ON (posts.tag_id = tags.id)
WHERE posts.date >= SUBTIME(NOW(), '12:00:00')
GROUP BY tags.id
ORDER BY count(*) DESC
我在 12 小时内创建了 3 篇以“SQL”为标签的帖子和 2 篇以“PHP”为标签的帖子,但其中只有一篇在 12 小时内创建。然后上面的查询返回:
tag count
SQL 3
PHP 1
【讨论】:
要从过去 12 小时内按降序排列最受欢迎的标签,您可以这样做:
SELECT tag
FROM tags
WHERE id IN (
SELECT tag_id FROM posts WHERE date >= SUBTIME(NOW(), '12:00:00')
)
ORDER BY COUNT(id) DESC
【讨论】:
SUBTIME。下次谷歌mysql SUB_TIME,你会在2秒内找到答案。