我正在构建一个复杂的多表 MySQL 查询,即使它有效,我想知道我能否让它更简单。
其背后的想法是,使用记录所有站点交互的事件表,选择 10 个最受欢迎的博客文章的 ID、标题和 Slug,并按点击次数降序排列。
SELECT content.id, content.title, content.slug, COUNT(events.id) AS hits
FROM content, events
WHERE events.created >= DATE_SUB(NOW(), INTERVAL 1 MONTH)
AND events.page_url REGEXP '^/posts/[0-9]'
AND content.id = events.content_id
GROUP BY content.id
ORDER BY hits DESC
LIMIT 10
博客文章 URL 具有以下格式:
/posts/2013-05-16-hello-world
正如我所提到的,它似乎有效,但我确信我可以做这个更清洁。
谢谢,