Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получить все категории и подкатегории товара / 4 сообщений из 4, страница 1 из 1
29.07.2013, 16:49:22
    #38347614
nuklon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить все категории и подкатегории товара
Доброго дня!
Задача вроде бы стандартная, даже здесь на форуме похожие темы есть, но ответов как-то не нашел.
К сути:
Есть таблица товаров (модели обуви), мне нужно вытащить список моделей с соответствующ(ими/ей) категори(ями/ей).
Таблица категорий - id, parent_id, name
Таблица товаров - id, parent_ext, name
Делаю такой запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT c.name AS cname, s.name AS sname,  m.*
            
 FROM `".RA_DB_PREFIX."cat` AS c
 LEFT JOIN `".RA_DB_PREFIX."cat` AS s ON s.parent = c.id
            
 LEFT JOIN `".RA_DB_PREFIX."model` m 
 ON m.`iParentExt` = c.`id` 
            
 GROUP BY m.`iParentExt` 
 ORDER BY m.`idModel` DESC


Возвращается такой результат:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Array
(
    [0] => Array
        (
            [cname] => Кроссовки
            [sname] => 
            [idShoesModel] => 1
            [iParentExt] => 25
            [iActive] => 1
            [iPrice] => 840
            [iSex] => 1
            [sName] => мод-133
            [sArticle] => 123456
            [sImg] => 
        )
 
    [1] => Array
        (
            [cname] => Зима
            [sname] => Классика
            [idShoesModel] => 
            [iParentExt] => 
            [iActive] => 
            [iPrice] => 
            [iSex] => 
            [sName] => 
            [sArticle] => 
            [sImg] => 
        )
 
)


А нужно (т.к, в таблице моделей пока 1 товар)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Array
(
    [0] => Array
        (
            [cname] => Кроссовки
            [sname] => Лето,Спорт
            [idShoesModel] => 1
            [iParentExt] => 25
            [iActive] => 1
            [iPrice] => 840
            [iSex] => 1
            [sName] => мод-133
            [sArticle] => 123456
            [sImg] => 
        )
)

Использование
Код: sql
1.
GROUP_CONCAT(s.`name`) AS sname

ничего путевого не дает.
Если бы каталог не был бы вложенным, то проблем нет (в задаче три вложенности), а так товар может принадлежать как каталогу нулевой вложенности, так и третьей. И надо вернуть соответствующие каталоги.
Если решалась такая задача, дайте ссылку или подскажите куда копать.
Как я предполагаю здесь просто надо какую-то ветку брать из дерева каталога, а точка отсчета может быть как в самом внизу (тогда мне нужно найти всех родителей), вверху (тогда уже - всех детей), либо посередине (родители и дети текущего). Правильно ли я думаю? Если да, то каков инструмент решения?
...
Рейтинг: 0 / 0
29.07.2013, 23:08:46
    #38347986
deblogger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить все категории и подкатегории товара
Цитаты запроса с другими полями. В криптографию не вникал.

Если "Таблица товаров - id, parent_ext, name" содержит ссылки сама на себя, типа parent_ext = id ее надо LEFT JOIN через алиасы саму с собой столько раз, сколько там подразумевается вложений. Откройте таблицу и посмотрите сколько там уровней. Затем уже станет понятно что группировать, что выкидывать и откуда брать отношение к категории.
...
Рейтинг: 0 / 0
29.07.2013, 23:59:24
    #38348010
nuklon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить все категории и подкатегории товара
deblogger, про криптографию не понял.
Ссылки на саму себя я делаю в запросе для таблицы категорий `".RA_DB_PREFIX."cat` , вложеность = 3.
А в таблице товаров есть поле parent_ext, которая ссылается на один из пунктов таблицы категорий.
debloggerее надо LEFT JOIN через алиасы саму с собой столько раз, сколько там подразумевается вложений.я весь день пробую эти join'ы в разных позах, не мог бы ты привести пример..?
...
Рейтинг: 0 / 0
30.07.2013, 01:24:02
    #38348043
=)8)
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить все категории и подкатегории товара
13509125 и далее
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Получить все категории и подкатегории товара / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]