Я пытаюсь выбрать 5 самых просматриваемых статей из списка 20 самых последних записей в таблице. Моя структура таблицы по сути такая:
id | date | title | content | views
Моей первой мыслью было просто использовать внутренний выбор, чтобы получить 20 самых последних статей, а затем выбирать из этого, но мне еще не повезло.
//doesn't work (my version of mysql doesn't support LIMIT in sub queries)
$recent = "(SELECT id FROM news ORDER BY date DESC LIMIT 20)";
$result = $db->query("SELECT id, title, date, content FROM news WHERE id IN $recent ORDER BY views DESC LIMIT ".self::RECENT_MAX);
//neither does this (syntax error @ 'OFFSET 20')
$recent = "(SELECT MAX(date) FROM news ORDER BY date DESC OFFSET 20)";
$result = $db->query("SELECT id, title, date, content FROM news WHERE date > $recent ORDER BY views DESC LIMIT ".self::RECENT_MAX);
Кто-нибудь получил какие-либо предложения о том, как бы вы структурировали этот запрос?