Самосоединение: ошибка синтаксического анализа SQL для псевдонима таблицы
Используя простое самостоятельное объединение, чтобы перечислить руководителей сотрудников:
CREATE VIEW AS
SELECT e1.EMP_ID EmployeeId, e1.FNAME EmployeeName,
e1.MANAGER ManagerName
FROM EMPLOYEE e1
LEFT JOIN EMPLOYEE e2
ON e1.MANAGER = e2.EMP_ID
Где рассматриваемая таблица EMPLOYEE с первичным ключом EMP_ID.
И MySQL, и Oracle возвращают ошибки для кода; и хотя я попробовал несколько различных вариантов, основным камнем преткновения является использование псевдонима для рассматриваемой таблицы (e1 и e2), который ни dbms не считают допустимыми идентификаторами.
1 ответ
Решение
Вам нужно имя для вашего просмотра:
CREATE VIEW v_emp AS
SELECT e1.EMP_ID EmployeeId, e1.FNAME EmployeeName,
e1.MANAGER ManagerName
FROM EMPLOYEE e1
LEFT JOIN EMPLOYEE e2
ON e1.MANAGER = e2.EMP_ID