Всем привет! Есть у меня новости, у каждой новости есть кнопка "like". И вот нужно мне вытащить, скажем, самые популярные (где больше всего лайков) новости за неделю или за день. Структура БД такая: таблица новостей и таблица лайков, где каждый лайк сохранятется как отдельная запись.
Делаю вот такой запрос, и всё получается, но очень долго, аж 2 секунды:
SELECT n.`id`,
(
SELECT count(l.`id`)
FROM `like` l
WHERE n.`id` = l.`news_id` AND l.`date` > date_add(NOW(), INTERVAL -7 day)
) count_like
FROM `news` n
ORDER BY count_like DESC
LIMIT 0, 100
Помогите плз ускорить запрос...