SELF JOIN

Базовый SQL
≈ 1 мин чтения

Таблицу можно соединить саму с собой

SELF JOIN — это обычный JOIN, в котором одна и та же таблица участвует в запросе дважды под разными псевдонимами. Он полезен, когда строки одной таблицы связаны друг с другом.

SELECT
    e.name AS employee,
    m.name AS manager
FROM employees AS e
LEFT JOIN employees AS m ON m.id = e.manager_id;

Псевдоним e представляет сотрудника, а m — его руководителя. Хотя физически таблица одна, в запросе эти роли нужно различать.

Псевдонимы здесь обязательны для понимания

Без разных имён источников было бы невозможно понять, к какой роли относится id, name или manager_id. Поэтому SELF JOIN почти всегда читается как две логические копии одной таблицы.

SELF JOIN — не отдельное ключевое слово SQL. Название описывает приём. Конкретный тип соединения всё равно выбирается обычный: INNER, LEFT и т.д.