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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Два запроса в одном 
V
    Опции темы
Mason13
  Дата 27.3.2010, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 16.12.2009

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



Дана база пользователей (users) : userid, name, email
Дана база их обьявлений (listings) : id, author (в этом поле содержиться userid автора), text, glamur, redcent, refresh
Последние 3 поля (т.е. glamur, redcent, refresh) содержат либо 1, либо 0.

Пытаюсь сделать статистику пользователей.
Для этого делаю запрос mysq_query("SELECT * FROM users LIMIT 100"), т.е. вывожу к примеру первые 100 пользователей.
Как можно усложнить запрос так, что бы он для каждого пользователя смотрел ВСЕ их обьявления в базе listings, и, если находит хотя бы одно обьявление с полем glamur, равным 1, то к данной строчке в результате запроса прибавляется это поле с его результатом, то же самое мне нужно и для redcent и для refresh.

Т.е. я хотел бы, что бы было так:

$q = mysql_query('тут некий волшебный запрос, который мне нужен');
while($r=mysql_fetch_assoc){
массив $r как минимум будет содержать:
$r['userid'] == id пользователя
$r['glamur'] == 1, если хоть одно его обьявление содержит поле glamur с 1, иначе 0
$r['redcent'] и $r['refresh'] == аналогично как для glamur.
}

Как сделать так???
PM MAIL   Вверх
Akina
Дата 27.3.2010, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(Mason13 @  27.3.2010,  21:10 Найти цитируемый пост)
$r['glamur'] == 1, если хоть одно его обьявление содержит поле glamur с 1, иначе 0

Если тебя устроит вариант "$r['glamur'] > 0, если хоть одно его обьявление содержит поле glamur с 1, иначе 0", то
Код

SELECT users.userid
     , users.name
     , users.email
     , Sum(listings.glamur) as glamur
     , Sum(listings.redcent) as redcent
     , Sum(listings.refresh) as refresh
FROM users 
JOIN listings
  ON users.userid = listings.author 
LIMIT 100




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mason13
Дата 27.3.2010, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 16.12.2009

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



спс, только mysql выдавал ошибку, что то о GROUP BY.
вставил в запрос GROUP BY - заработало
PM MAIL   Вверх
Akina
Дата 27.3.2010, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Ну есссно - есть sum, нужен и group by... сам додумал - хорошо.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Mason13
Дата 28.3.2010, 19:34 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 16.12.2009

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



Цитата(Akina @ 27.3.2010,  23:00)
Ну есссно - есть sum, нужен и group by...

Ах, да, точно, я и забыл.. как я мог забыть такую мелочь, вот болван, а... всё ведь так естественно: если есть сумма, то должна быть и группа! Если есть резистор на 10Ом, то должен быть и конденсатор на 20мФ и никак не иначе, всё естественно, и как просто!)

Цитата(Akina @ 27.3.2010,  23:00)
сам додумал - хорошо.

Неет, прочитал ваши мысли. Прям так и видел перед собой текст "этот человек что-то не договаривает. А не договаривает он вот что: GROUP BY"...

Это сообщение отредактировал(а) Mason13 - 28.3.2010, 19:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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