Выбору с вложеностью в SQL

 
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3090
Доброго времени суток!
Ковыряюсь, да ничего не выходит...джоинить видимо не мое)
Имеем таблицу вида:
| id | name | parent |
------------------------------------
| 1 | вася | 0 |
| 2 | петя | 1 |
| 3 | степа | 0 |
| 4 | игорь | 1 |
| 5 | кеша | 2 |

Как бы реферальная система, петя с игорем рефералы васи, а кеша реферал пети и реферал 2 уровня васи.

Задача: как сделать выборку по васе? т.е. что бы получить:
| id | name | parent |
------------------------------------
| 1 | вася | 0 |
| 2 | петя | 1 |
| 4 | игорь | 1 |
| 5 | кеша | 2 |
Спасибо!
Редактировалось: 2 раз (Последний: 14 февраля 2017 в 19:16)
Посетитель
small user social cms
МедальАвторитет форума
Сообщений: 1545
Jestik, то как ты привёл, просто order by parent получается, ну и исключить стёпу.
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2643
Jestik,
Вообще странное задание, но я думаю, что как-то так:

SELECT * FROM users WHERE id = 1 OR parent = 1 OR parent IN (SELECT id FROM users WHERE parent = 1) ORDER BY parent ASC

Спойлер
Посетитель
small user social cms
МедальАвторитет форумаПочетный донор проектаКубок зрительских симпатий
Сообщений: 3090
Всем спасибо, решил проблему по другому, а по другому потому что не правильное тз было)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: