Выбору с вложеностью в SQL
Ковыряюсь, да ничего не выходит… джоинить видимо не мое)
Имеем таблицу вида:
| 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 |
Спасибо!
Вообще странное задание, но я думаю, что как-то так:
SELECT * FROM users WHERE id = 1 OR parent = 1 OR parent IN (SELECT id FROM users WHERE parent = 1) ORDER BY parent ASC