CREATE TABLE staff (

В приведённом примере SQL-запрос корректно реализует вывод списка сотрудников и их руководителей из одной таблицы staff с помощью self JOIN.

Короткий ответ

Что ответить на собеседовании

В приведённом примере SQL-запрос корректно реализует вывод списка сотрудников и их руководителей из одной таблицы staff с помощью self JOIN.

Подробный разбор

Ответ с пояснениями

Условие

CREATE TABLE staff ( id TEXT name TEXT head_id TEXT );

id | name | head_id

1 | Ivan | NULL 2 | Petr | 1 3 | Alice | 1 4 | Max | 2 5 | Alex | 2 6 | Elena | 4 7 | Bob | NULL

Ожидаем получить:

employee_name | manager_name

Ivan | NULL Petr | Ivan Alice | Ivan Max | Petr Alex | Petr Elena | Max Bob | NULL

SELECT e.name AS employee_name, m.name AS manager_name FROM staff e LEFT JOIN staff m ON e.head_id = m.id

Ответ

В приведённом примере SQL-запрос корректно реализует вывод списка сотрудников и их руководителей из одной таблицы staff с помощью self JOIN.

Таблица staff содержит поля id, name и head_id, где head_id — это ссылка на id руководителя сотрудника.

Запрос:

SELECT e.name AS employee_name, m.name AS manager_name
FROM staff e
LEFT JOIN staff m ON e.head_id = m.id
  • e — алиас для сотрудников.
  • m — алиас для их менеджеров.
  • LEFT JOIN гарантирует, что даже у сотрудников без менеджера (например, у Иван и Боб) будет строка с manager_name = NULL.

Таким образом, запрос выводит имена сотрудников и имена их руководителей, если они есть, что соответствует ожидаемому результату.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку