【问题标题】:Self-join: SQL parse error on table alias自联接:表别名上的 SQL 解析错误
【发布时间】:2013-03-23 19:27:11
【问题描述】:

使用简单的self join列出员工的经理:

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 都不认为是合法标识符。

【问题讨论】:

  • 错误是什么? Manager 和 EMP_ID 是否相同?

标签: mysql sql oracle11g self-join table-alias


【解决方案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

【讨论】:

  • 谢谢:当它归结为一个错字时,我讨厌它:P
猜你喜欢
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
  • 2014-10-23
  • 2016-09-23
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多