SELF JOIN в SQL используется для объединения таблицы с самой собой. Это может быть полезно, когда вам нужно сравнить данные из одной таблицы с данными из той же таблицы.
Пример использования SELF JOIN:
Предположим, у нас есть таблица "employees" с колонками id, name и manager_id, где manager_id указывает на id менеджера этого сотрудника. Мы хотим вывести информацию о каждом сотруднике и его менеджере. Для этого мы можем использовать SELF JOIN:
```sql
SELECT e.name AS employee, m.name AS manager
FROM employees e
JOIN employees m ON e.manager_id = m.id;
```
В этом примере мы делаем JOIN таблицы employees с самой собой по условию e.manager_id = m.id. Мы выбираем имена сотрудника (e.name) и его менеджера (m.name).
SELF JOIN может быть также использован для рекурсивных запросов, например, если нам нужно найти всех подчиненных данного менеджера.
```sql
WITH RECURSIVE employee_hierarchy AS (
SELECT id, name, manager_id
FROM employees
WHERE id = 1
UNION ALL
SELECT e.id, e.name, e.manager_id
FROM employees e
JOIN employee_hierarchy eh ON e.manager_id = eh.id
)
SELECT *
FROM employee_hierarchy;
```
Здесь мы используем рекурсивный CTE (Common Table Expression) для построения иерархии подчиненных всех уровней для данного менеджера.
SELF JOIN - позволяет нам не только сравнивать данные из одной таблицы с данными из той же таблицы, но и делать рекурсивные запросы для построения иерархий данных.
SELF JOIN
4 мая 20244 мая 2024
55
1 мин