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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вложенный запрос что ли 
V
    Опции темы
bars80080
Дата 29.11.2010, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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

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



есть таблица товаров с некоторой характеристикой, есть таблица партий, а есть таблица разделов
товар связан с партией, партия связана с разделом

надо получить список из 10 разделов, которые имеют больше всего товаров определённой характеристики

поэтапно это делается так:

SELECT count(*),`id_part` FROM `goods` GROUP BY `id_part` HAVING `param`=7

получаем в пхп массив
потом достаём из полученного списка партии и получаем их разделы

SELECT `id_block` FROM `parts` WHERE `id` IN (... параметр id_part из предыдущего запроса ... )

SELECT `block_name` FROM `blocks` WHERE `id` IN (... параметр id_blocks из предыдущего запроса ... )

после чего прокручиваем массив товаров в цикле и присваиваем им id блоков, сортируем и так далее - всё уже на пхп




есть ли возможность облегчить эту задачу с помощью построения сложных запросов mysql?
PM MAIL WWW   Вверх
triclosan
Дата 29.11.2010, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

select b.id, b.block_name, count(g.id) as cnt
from goods g, parts p, blocks b
where g.param = 7
and g.id_part = p.id
and p.id_block = b.id
group by b.id, b.block_name
order by cnt desc
limit 10; --if mysql



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


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



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

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



то что надо

одним махом всё накрывает
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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