Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запрос с группировкой, нужен совет, чтобы сделать акуратно 
V
    Опции темы
begin
Дата 18.8.2009, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



База MySQL. Есть таблица: 
Код

[U]t_item[/U]
id - число
name - текст
vid - число
prod - число

Нужно выбрать записи с определенным vid, сгруппировать их по prod и сортировать по name
Составил вот такой запрос:
Код

select * from `t_item` where `vid`='$vid' order by `name` asc group by `prod`

Правильно ли он составлен?
PM MAIL   Вверх
azesmcar
Дата 18.8.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(begin @  18.8.2009,  13:38 Найти цитируемый пост)
Нужно выбрать записи с определенным vid, сгруппировать их по prod и сортировать по name

Данных явно недостаточно для решения задачи, какие колонки надо показывать? Что надо считать для группы? sum, count, max, min???

Цитата(begin @  18.8.2009,  13:38 Найти цитируемый пост)
Правильно ли он составлен? 

нет smile 

PM   Вверх
bars80080
Дата 18.8.2009, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



а ты его не запускал?

запустил бы, ошибку сразу показал бы
PM MAIL WWW   Вверх
begin
Дата 18.8.2009, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(azesmcar @ 18.8.2009,  13:42)
Данных явно недостаточно для решения задачи, какие колонки надо показывать? Что надо считать для группы? sum, count, max, min???

vid - это вид продукции
prod - это производитель продукции
Мне нужно выбрать все поля из записей (поэтому я и поставил * в запросе) с vid=$vid
Выбранные записи нужно сгруппировать по производителю - т.е. выводить группами с одинакомым prod. Внутри каждой группы записи сортируются по имени.
Например, в таблице есть такие записи:
Код

id name       vid prod
1  опель       3  2
2  бмв           3  1
3  тушенка   1  2
4  икра         1  3
5  мерседес  3  1
6  ауди         3  2

запрос при $vid=3 должен найти вот ЭТИ записи вот в ТАКОМ порядке:
Код

id name       vid prod
2  бмв           3  1
5  мерседес  3  1
6  ауди         3  2
1  опель       3  2


PM MAIL   Вверх
azesmcar
Дата 18.8.2009, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

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



Цитата(begin @  18.8.2009,  14:13 Найти цитируемый пост)
Выбранные записи нужно сгруппировать по производителю - т.е. выводить группами с одинакомым prod. Внутри каждой группы записи сортируются по имени.


Цитата(begin @  18.8.2009,  14:13 Найти цитируемый пост)
Мне нужно выбрать все поля из записей (поэтому я и поставил * в запросе) с vid=$vid

у тебя либо неверное представление о группировке, либо ты сам не представляешь что тебе надо.
допустим есть у нас 10 строк с одинаковым prod, сгруппировали мы их и что? какой ID показывать для сгруппированой строки? Какой name?

Нарисуй таблицу которая у тебя есть и покажи результат, который хочешь увидеть.

Это сообщение отредактировал(а) azesmcar - 18.8.2009, 14:35
PM   Вверх
Akina
Дата 18.8.2009, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(begin @  18.8.2009,  15:13 Найти цитируемый пост)
Выбранные записи нужно сгруппировать по производителю - т.е. выводить группами с одинакомым prod. Внутри каждой группы записи сортируются по имени.

Это не группировка. Тебе надо сортировать сначала по prod, а потом по name 
Код

select * 
from `t_item` 
where `vid`='$vid' 
order by `prod`,`name`

PS. Маны читать - полезно.


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

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


Опытный
**


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

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



Цитата(Akina @ 18.8.2009,  14:51)
Это не группировка. Тебе надо сортировать сначала по prod, а потом по name

Спасибо, до меня уже дошло, что я "полез не в ту степь"  smile 
Действительно - оказалось достаточно сортировки по двум критериям.
Всем спасибо, помогли  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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