Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выбрать элементы каталога и количество товаров в них
 
 автор: CrazyAngel   (18.07.2008 в 10:03)   письмо автору
 
 

у меня есть Дерево каталогов NESTED SETS
собственно, как выбрать список веток второго уровня, чтоб в результате получить еще и сколько в них товаров(товары в другой таблице ключ section_id) + сколько товаров во вложенных категориях, и сколько у них подкатегорий + сколько подкатегорий у этих подкатегорий(сколько вообще подкатегорий в этой ветке начиная с этой секции)

хм... помоему объяснил не очень хорошо... если что надо дообъяснять скажите...

Помогите пожалуйста, заранее спасибо :)

   
 
 автор: CrazyAngel   (18.07.2008 в 13:36)   письмо автору
 
   для: CrazyAngel   (18.07.2008 в 10:03)
 

вот составил запрос, который выбирает сколько ветки и сколько в них товаров, помогите доработать, чтоб еще выбиралось, сколько товаров в подкатегориях...
SELECT COUNT(`elements`.`id`) AS 'num', `elements`.`section_id`,`sections`.* 
FROM `elements` right OUTER JOIN  `sections` 
ON `elements`.`section_id`=`sections`.`id` 
WHERE `sections`.`parent_id`='1' 
GROUP BY `sections`.`id`

   
 
 автор: Trianon   (18.07.2008 в 13:41)   письмо автору
 
   для: CrazyAngel   (18.07.2008 в 10:03)
 

Надо сообщить структуру таблицы.
Как минимум в той части, которая касается представления дерева (ключи, границы, имена, уровни)
А в идеале - привести фрагмент дампа, чтоб можно было проверить.
И еще надо исправить пост так, чтоб лента темы влезала в экран по ширине.
Вроде не новичок на форуме, userid старше моего, а такие ляпы, блин.

   
 
 автор: CrazyAngel   (18.07.2008 в 14:06)   письмо автору
1013 байт
 
   для: Trianon   (18.07.2008 в 13:41)
 

угу... давно я тут :) и давно не был ;)...
и так все по правилам, дамп в аттач? :)
думаю именя рядов понятны
rk - правый ключ
lk - левый ключ

сорри за ляпы ^^

   
 
 автор: Trianon   (18.07.2008 в 14:38)   письмо автору
 
   для: CrazyAngel   (18.07.2008 в 14:06)
 

Пока Вы отковыривали дамп, я нашел очень похожую тему.
http://softtime.ru/forum/read.php?id_forum=3&id_theme=55444
Тот же вопрос фактически.

   
 
 автор: CrazyAngel   (21.07.2008 в 07:33)   письмо автору
 
   для: Trianon   (18.07.2008 в 14:38)
 

спасибо :)
Есть еще проблема... не понимаю почему не получается выбрать еще и сколько товаров именно в этой ветке

SELECT `h`.*, COUNT(`p`.`id`) AS `cnt`,COUNT(`in`.`id`) AS `cnt_in` FROM `sections` `h`
    JOIN `sections` `c` ON `c`.`lk` >= `h`.`lk` AND `c`.`rk` <= `h`.`rk`
    LEFT JOIN `elements` `p` ON `p`.`section_id` = `c`.`id`
    LEFT JOIN `elements` `in` ON `in`.`section_id` = `h`.`id`
WHERE `h`.`level` = 2
GROUP BY `h`.`id`, `h`.`name`
ORDER BY `h`.`lk`, `h`.`name` 

cnt_in - кол-во товаров в ветке(исключая подветки)

   
 
 автор: Trianon   (21.07.2008 в 14:13)   письмо автору
 
   для: CrazyAngel   (21.07.2008 в 07:33)
 

COUNT() считает не ветки и не товары. COUNT(), грубо говоря, считает строки табличного выражения.
Выражение у Вас одно. Строк, посчитанных что первым COUNT(), что вторым - одно и то же число.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования