У меня есть таблица отзывов. (Предоставление пользователю возможности отмечать, какого игрока получать обзоры.) Я хочу, чтобы отображались 15 самых последних обзоров, сначала организованных по классу игрока, а затем по самому обзору. Некоторые из них будут иметь несколько отзывов в результатах.
ORDER BY p.grade, p.nameLast, r.id desc LIMIT 15 ";
Это выглядит довольно четко, но по мере роста первого сорта он вырастет sh результаты других оценок.
Тогда я попробовал ...
ЗАКАЗАТЬ ПО r.id des c, p.grade, p.nameLast LIMIT 15 ";
... Я не мог понять, как перечислить их в соответствии с оценкой.
Я пробовал GROUP BY, затем ORDER BY, но он просто перечисляет самый последний экземпляр типа.
Я даже пытался использовать GROUP BY r.id, полагая, что он извлечет 15 уникальных идентификаторов rid, но в конечном итоге он дал те же результаты.
Вот мой запрос. (Примечание: он дает нужные мне результаты, кроме того, как их упорядочить.)
$query = "SELECT *,p.id,b.playerID,b.id,s.toggle AS stoggle,o.toggle AS otoggle,p.city,p.school,s.city,s.school,r.opp_city,r.opp_school,o.city,o.school,r.city,r.school FROM a_players_reviews r
LEFT JOIN a_players p
ON CONCAT (r.nameFirst,r.nameLast) = CONCAT (p.nameFirst,p.nameLast)
LEFT JOIN a_schools s
ON CONCAT(r.city,r.school) = CONCAT(s.city,s.school)
LEFT JOIN a_schools o
ON CONCAT(r.opp_city,r.opp_school) = CONCAT(o.city,o.school)
LEFT JOIN a_player_bookmark b
ON p.id = b.playerID && '". $userID ."' = b.userID
WHERE p.id = b.playerID && '". $userID ."' = b.userID && bookmark>0
ORDER BY p.grade,p.nameLast,r.id DESC
LIMIT 15";
Я просто хочу, чтобы он всегда рисовал 15 самых последних обзоров (r.id), затем упорядочивал их по классам и Имя игрока.