|
|
|
| Например есть категория А и у нее подкатегории Б и С. И товары привязанные к каждой по 5 и 10 товаров соответсвенно.
как отобразить одним запросом категорию А с количесвтом товаров 15 с учетом количесвта товаров в каждой подкатегории Б и С?? | |
|
|
|
|
|
|
|
для: dimaxz
(30.03.2011 в 09:37)
| | Обычно задачу делят на две части
1. Извлечение первичных ключей А, Б и С, можно при помощи рекурсии, можно при помощи специальной кэширующей таблицы, которая обновляется по триггеру или cron или при добавлении позиции.
2. Извлечение количества товаров при помощи вложенного запроса
SELECT COUNT(*) FROM tbl WHERE id IN (А, Б, С)
|
| |
|
|
|
|
|
|
|
для: cheops
(30.03.2011 в 10:51)
| | я тут подумал наверно будет оптимальныей вытащить все категории и кол.товаров в каждой а потом на пхп произвести подсчет и сортировку путем рекусрсии или асоц.массива | |
|
|
|
|
|
|
|
для: dimaxz
(30.03.2011 в 10:58)
| | Нет, оптимальнее будет вытащить список подкатегорий, для которых вам нужно подсчитать количество товаров, чтобы не считать каждый раз. Да, можно, держать количество товаров в категории в самой таблице категорий (в этом случае COUNT() у вас заменяется на SUM()), но проблема вложенных категорий остается, чтобы избежать дорогой рекурсии (включающей SQL-запросы) лучше кэшировать так же и список вложенных подкатегорий для каждой из категории. Если подкатегорий будет пару сотен, а вложений штук 5 - скажите себе за это спасибо. | |
|
|
|