Самосоединение: ошибка синтаксического анализа 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
Другие вопросы по тегам