Задать вопрос

Вывести топ 10 юзеров по рейтингу + сам пользователь?

У меня задание написать запрос :

Есть таблица с users где у них у каждого есть рейтинг, нужно сделать такой запрос, чтобы вывести ТОП 10 пользователей ПО ВСЕЙ таблице USERS + в конце таблицы независимо от его оценки и позиции строка с данными пользователя который просматривает ленту.

То есть
1
2
3
4
5
6
7
8
9
10
*тут данные юзера, который просматривает базу. Он может быть и первым, и седьмым, и хоть последним , но в конце я обязан хоть как вывести строку с его данными.

Помогите мне пожалуйста, Как это можно реализовать ?

SELECT top.*
FROM(
    SELECT u.avatar_path AS "Avatar", u.rating AS "Rating"
    FROM users AS u 
    WHERE u.id IN(
        SELECT u.id
        FROM users AS u
    )
)AS top
ORDER BY top."Rating" DESC
LIMIT 10

UNION 
SELECT user.*
FROM(
    SELECT u.avatar_path AS "Avatar", u.rating AS "Rating"
    FROM users AS u 
    WHERE u.id = 1
) AS user;
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой 3 комментария
Решения вопроса 1
@MrColdCoffee
web
SELECT *
FROM(
    SELECT u.avatar_path AS "Avatar", u.rating AS "Rating"
    FROM users AS u ORDER BY u.rating DESC LIMIT 10 
)AS top 
UNION ALL
    SELECT u2.avatar_path AS "Avatar", u2.rating AS "Rating"
    FROM users AS u2 
    WHERE u2.id = 1


(SELECT u.avatar_path AS "Avatar", u.rating AS "Rating" FROM users AS u order by u.rating desc limit 10)
UNION ALL
(SELECT u2.avatar_path AS "Avatar", u2.rating AS "Rating" FROM users AS u2 WHERE u2.id = 1)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы