基本上我有3个表,用户,帖子,动作(动作都喜欢)。用户可以喜欢彼此的帖子。我想获取在过去7天内最喜欢他们的帖子的前10位作者。我的查询如下所示,它可以工作,但我怀疑我的查询是否真的有效。它可以优化以更好地执行吗?
查询:
SELECT u.*, COUNT(a.post_id) as likes
FROM Actions AS a
LEFT JOIN Posts p ON p.id = a.post_id
LEFT JOIN Users AS u ON u.id = p.user_id
WHERE a.dateCreated >= DATE_ADD(NOW(), INTERVAL -7 DAY)
GROUP BY u.id
ORDER BY likes DESC
LIMIT 10
用户
帖子
操作