Я пытаюсь выбрать 5 наиболее просматриваемых статей из списка из 20 последних записей в таблице. Моя структура таблицы в основном это:Выберите max 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);
У кого-нибудь есть предложения по структурированию этого запроса?
Спасибо, это хорошо работает. Разумеется, предельная ошибка была только в подзапросах в операторах типа WHERE. – tj111