Intereting Posts
Регулярное выражение для содержимого внутри <td> и </ td> Codeigniter Извлечение параметров Returnify Почему я получаю эту ошибку вызова функции для не-объекта, когда я вызываю функцию на объекте? Преобразование строки в ассоциативный массив PHP Как передать параметры шаблону PHP, представленному с помощью 'include'? отправлять запрос приложения, но не отправляться пользователю? Замечание PHP: Неопределенное смещение: 1 с массивом при чтении данных Ошибка регистрации php – error_reporting (0), не имеющий желаемого эффекта Как не удалось выполнить запрос HTTP! HTTP / 1.1 463? интеграция цифровых товаров в PayPal, как включить оплату в качестве гостя? В API графиков Facebook, какие вызовы API получают адрес электронной почты пользователя и пол? Что делает \ (обратная косая черта) в PHP (5.3+)? Проблема базы данных UTF-8 Просмотр SELECTion из нескольких таблиц, сгруппированных в jQuery UI-аккордеонном виджете Темы для PHP, разделяющие объект центрального сокета

создать представление, которое получает ранг, имя пользователя и количество записей пользователя

У меня есть таблица ниже. Я не могу создать представление, которое отображает количество записей wrt пользователя и имени пользователя из другой таблицы и рангов, скажем, для категории «1». Как мне создать представление? Я очень ценю любую помощь. Спасибо в Advance.

CREATE TABLE if not exists tblA ( id int(11) NOT NULL auto_increment , user varchar(255), category int(255), PRIMARY KEY (id) ); CREATE TABLE if not exists tblB ( id int(11) NOT NULL auto_increment , username varchar(255), userid int(255), PRIMARY KEY (id) ); INSERT INTO tblA (user, category ) VALUES ('1', '1'), ('1', '2'), ('1', '3'), ('1', '1'), ('2', '1'), ('2', '1'), ('2', '1'), ('2', '1'), ('3', '1'), ('2', '1'), ('4', '1'), ('4', '1'), ('2', '1'); INSERT INTO tblB (userid, username ) VALUES ('1', 'A'), ('2', 'B'), ('3', 'C'), ('4', 'D'), ('5', 'E'); 

Я пробовал, но не работал:

 create view v as SELECT tblB.username, groups.*, @rank:=@rank+1 AS rank FROM (select user, category, count(*) as num from tblA where category=1 group by user, category order by num desc, user) AS groups -- left join: in case if data integrity fails: left join tblB ON groups.user=tblB.userid CROSS JOIN (SELECT @rank:=0) AS init 

Результат должен выглядеть следующим образом:

  username user category num rank B 2 1 6 1 A 1 1 2 2 D 4 1 2 3 C 3 1 1 4