Иерархический запрос MySQL без начального родительского элемента
Есть таблица:
| person_id | employee_id | status | phone_number |
|---|---|---|---|
| 1 | null | WORKER | 3433 |
| 2 | null | WORKER | 3455 |
| 3 | 1 | FRIEND | 2134 |
| 4 | 2 | FRIEND | 5321 |
| 5 | 1 | FRIEND | 3253 |
| 6 | 1 | FRIEND | 5632 |
| 7 | 2 | FRIEND | 3425 |
| 8 | null | WORKER | 3255 |
| 9 | 8 | FRIEND | 3472 |
Нужно написать запрос, чтобы вывод был примерно таким:
| person_id | employee_id | status | phone_number |
|---|---|---|---|
| 1 | null | WORKER | 3433 |
| 3 | 1 | FRIEND | 2134 |
| 5 | 1 | FRIEND | 3253 |
| 6 | 1 | FRIEND | 5632 |
| 2 | null | WORKER | 3253 |
| 4 | 2 | FRIEND | 5321 |
| 7 | 2 | FRIEND | 3425 |
| 8 | null | WORKER | 3255 |
| 9 | 8 | FRIEND | 3472 |
Я уже попытался написать рекурсивный запрос, но он выводит не совсем то что нужно. Если есть идеи или предложения, пожалуйста помогите.
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
SELECT *
FROM tablename
ORDER BY COALESCE(employee_id, person_id), person_id
?