[Nested sets] Получить список группи их родительские ветки

IvanShumkov

Новичок
[Nested sets] Получить список группи их родительские ветки

Есть таблица (users_user_in_group с полями user_id и group_id) и таблица c ирархической структурой групп (users_groups с полями id, _disabled, _deleted, _left, _right, _level). Задача - выбрать все id групп в которых состоит пользователь и их родительские ветки (id родителей).


Пробую:

SELECT DISTINCT c.id AS id FROM `users_user_in_group` a
LEFT JOIN `users_groups` b ON (a.`group_id` = b.`id`)
INNER JOIN `users_groups` c ON (a.`group_id` = c.`id`)
WHERE a.`user_id` = 3 AND c.`_disabled` = 0 AND c.`_deleted` = 0 AND c.`_left` <= b.`_left` AND c.`_right` >= b.`_right`
ORDER BY c.`_left`


Получаю id групп, а id родителей нет. Видимо что-то не учел. Подскажите пожалуйста где ошибка.
 

SmokyPython

Новичок
IvanShumkov

>>INNER JOIN `users_groups` c ON (a.`group_id` = c.`id`)

я полагаю условие объединения должно быть то что в where написано

и возможно стоит a.`user_id` = 3 в первый join запихать
 

IvanShumkov

Новичок
SmokyPython
:) При предварительной обработке запроса все условия из ON() переносятся в WHERE, читайте документацию.

-~{}~ 06.02.06 06:12:

SmokyPython
Тфу-ты... простите пожалуйста, я невнимательно прочитал и не до конца понял вас.
 
Сверху