SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.01.2016 06:12:32

xew
Участник
Зарегистрирован: 28.01.2016
Сообщений: 2

Nested Sets категории

Делаю древо категорий Nested Sets нужно отобразить категории только в которых есть товар, набросал такой код:

SELECT * FROM categories as cat1
INNER JOIN category_product ON category_product.category_id = cat1.id
INNER JOIN categories as cat2 ON cat2.lft <= cat1.lft AND cat2.rgt >= cat1.rgt ORDER BY cat2.lft


Но в нем таблицы соединяются горизонтально, не могу понять как соединить их через UNION чтоб можно было использовать cat1.lft и cat1.rgt

Неактивен

 

#2 28.01.2016 14:35:02

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Nested Sets категории

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

Неактивен

 

#3 29.01.2016 04:26:16

xew
Участник
Зарегистрирован: 28.01.2016
Сообщений: 2

Re: Nested Sets категории

vasya написал:

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

https://yadi.sk/d/7ND_wHDBnuNH6 - Таблица categories
https://yadi.sk/d/LoiEpLAknuNHW - Таблица category_product

Сам запрос сначала выбирает все данные из таблицы category_product в котором есть ключ category_id и сравнивает их с таблицей categories с ключом id в итоге мы получаем все категории в которых есть товар, далее мы находим всех родителей этих категорий по lft и rgt в таблице categories

Все это работает, но фишка в том что таблицы соединяются JOIN'ами поэтому соединение идет горизонтально а мне нужно чтоб они соединились как UNION (продолжили данные) но этого сделать не получится потому что в таком случае я не могу передать параметры с cat1.lft и cat1.rgt. Так же после всего этого нужно сделать ORDER BY id чтоб убрать все дублирующиеся категории.

П.С.: На другом форуме дали наводку что нужно копать в сторону рекурсивных cte

Отредактированно xew (29.01.2016 04:34:37)

Неактивен

 

#4 29.01.2016 21:32:19

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Nested Sets категории

xew написал:

а мне нужно чтоб они соединились как UNION (продолжили данные)

вот эта фраза и не понятна.
покажите какой результат должен быть на приведенных данных

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson