Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рейтинг пользователей 
:(
    Опции темы
Miller_time
Дата 9.8.2009, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Есть несколько таблиц с полями

1. Таблица  UserS

ID | USERName  

1              Miller
2              Miller2

2. CHat

id |  Mess  |  id_user
0                 Hello               1
0                 Hello               1
0                 Hello               1
0                 Hello               2
0                 Hello               2


Подскажите как составить представление что бы в первом выводилось id пользователя а в другом кол во сколько он оставил сообщение в чате ? 


пример 

Представление

id_Пользователя  Кол-во сообщение

1                                     3
2                                     2




--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
Gluttton
Дата 9.8.2009, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



Для ответа на вопрос:
Цитата

id пользователя а в другом кол во сколько он оставил сообщение в чате ? 

достаточно лишь одной второй таблицы.

Запрос будет выглядеть так:
Код

select 
    CHat.id_user, 
    count(CHat.id_user) as c
from CHat
    group by CHat.id_user


Представления создавать не приходилось... но это дело поправимое (наверное smile )...
СУБД?


--------------------
Слава Україні!
PM MAIL   Вверх
Miller_time
Дата 9.8.2009, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



SQL 2005 , дело втом что кол-во сообщений будет браться не только из чата но и с форума и других мест, поэтому и требуется вывод их нескольких таблиц.


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
Gluttton
Дата 9.8.2009, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



Цитата

SQL 2005


Над этим я сейчас подумаю, а тем временем...
Цитата

дело втом что кол-во сообщений будет браться не только из чата но и с форума и других мест, поэтому и требуется вывод их нескольких таблиц.


В этом нам поможет UNION ALL, а таблица UserS, для получения указаной информации не нужна!
(Про UNION ALL)
Код

select
    s.id_user,
    s.c
from
(
    select 
        CHat1.id_user, 
        count(CHat1.id_user) as c
    from CHat1
        group by CHat1.id_user
    union all
    select 
        CHat2.id_user, 
        count(CHat2.id_user) as c
    from CHat2
        group by CHat2.id_user
)   as s


Для таблиц CHat1 и CHat2ю.

Добавлено @ 20:57
Код

create view MyView as
select 
    CHat.id_user, 
    count(CHat.id_user) as c
from CHat
    group by CHat.id_user


Создает представление MyView и выводит туда пользователей и их количество сообщений из таблицы CHat.

Не проверял - но думаю, что должно получиться...

Это сообщение отредактировал(а) Gluttton - 9.8.2009, 20:57


--------------------
Слава Україні!
PM MAIL   Вверх
gcc
Дата 9.8.2009, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: нет
Всего: 17



вот акой запрос если извенос сколько кол. сообщений:
(можно сделать с вложенным запросом)
Код

                                                       SELECT count(*)+1 AS position
                              FROM content AS t1
                          LEFT JOIN content AS t2
                                 ON t1.id_co = ' . $loop_data2->{id_co} . ' 
                               AND t1.vo_all_co < t2.vo_all_co
                            WHERE t2.id_co IS NOT NULL


вот такой типо в реальном времени на MySQL
Код

SELECT rownum FROM (SELECT @rownum:=@rownum+1 rownum, id_co FROM (SELECT @rownum:=0) r, 
(SELECT count(*) cnt, id_co FROM tablename GROUP BY id_co ORDER BY cnt DESC) t1) t2 WHERE t2.id_co=id_того,что нужно 

PM WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.