Всем привет у меня вопрос как сделать рейтинг записей Есть таблица назовем ее TABLE в ней 6 полей, интересует только одно: Человек добавляет материал и к одно из полей записывается его ID, которое он получил при регистрации, например поле назовем id_user Получается что нужно подсчитать сколько юзер с id_user запостил новостей и если их скажем 10 то выводим его в ТОП Далее если следующий юзер запостил 9 то он второй в рейтинге и т.д. Как это можно сделать?
SELECT users.*, COUNT(id) AS posts FROM users LEFT JOIN table ON users.id = table.id_user ORDER BY posts DESC
Что то я не понял как тут все, можете разжевать Table - таблица id и id_user - поля id - id созданного поля id_uder - юзер которому принадлежит пост У меня ничего не получается (
может есть какой-нибудь текст ошибок? что не получается? и старайтесь не называть поля зарезервированными именами table, view, date и т.п.
что непонятного? Запрос пробовали выполнять? Только надо свои имена полей и таблиц подставить, вы ж тут структуру не приводите. Запрос выведет всё из таблицы users и количество постов из table, привязанных к юзеру. И еще отсортировано по количеству.
все понял, разобрался, но он выводит только одного юзера Я пищу так [sql]"SELECT all_users.*, COUNT(id_user) AS id_user FROM all_users LEFT JOIN posts_users ON all_users.id = posts_users.id_user ORDER BY id_user DESC limit 10"; [/sql] и выводит только одного юзера
"SELECT all_users.*, COUNT(posts_users.id) AS user_posts FROM all_users LEFT JOIN posts_users ON all_users.id = posts_users.id_user ORDER BY user_posts DESC limit 10"