SQL与两个相同的表连接?

SQL与两个相同的表连接?,sql,database,oracle,join,Sql,Database,Oracle,Join,我有这张桌子: CREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT EMP_PRIMARY_KEY PRIMARY KEY , ENAME varchar2(10), JOB varchar2(9), MGR NUMBER(4)CONSTRAINT EMP_SELF_KEY REFERENCES EMP (EMPNO), HIREDATE DATE, CONSTRAINT EMP_FOREIGN_KEY RE

我有这张桌子:

 CREATE TABLE EMP
    (EMPNO NUMBER(4) CONSTRAINT EMP_PRIMARY_KEY PRIMARY KEY ,
    ENAME varchar2(10),
    JOB varchar2(9),
    MGR NUMBER(4)CONSTRAINT EMP_SELF_KEY REFERENCES EMP (EMPNO),
    HIREDATE DATE,
    CONSTRAINT EMP_FOREIGN_KEY REFERENCES DEPT (DEPTNO));
现在我想得到所有工人的名字(ename)、工作(job)和经理(mgr)的名字

我考虑在同一个表上使用联接来执行此操作:

SELECT ename, job, empno
FROM emp
INNER JOIN emp AS emp1
ON (emp.mgr = emp1.empno);


但我总是会遇到错误:“缺少关键字”

我认为您必须从内部join语句中删除
AS

SELECT emp.ename, emp.job, emp.empno
FROM emp
INNER JOIN emp  emp1
ON (emp.mgr = emp1.empno);
您必须在每个列名之前添加别名。

尝试以下操作:

SELECT E2.ename, E2.job, E2.empno, E1.ename as 'manager_name'
FROM emp as E1
INNER JOIN emp AS E2
ON E1.mgr = E2.empno;
SELECT e.ename, e.job, e.empno
FROM emp e
INNER JOIN emp e1
   ON (e.mgr = e1.empno);

Woah:)谢谢qoicjk的回复,但它仍然不起作用。现在我得到了另一个错误:“Collumn not unique defined”@Bajellor然后将
从emp
更改为
从emp emp
Jep这就是问题所在。谢谢:)@Bajellor:这就是问题所在?该表的名称是
emp
,但您必须为其使用别名
emp
???Jens的查询可以在我所知道的任何Oracle版本中运行。你用的是哪个版本?@ThorstenKettner不是这个意思,他用别名的想法给了我一个暗示,现在它起作用了。我把我的别名叫做emp1和emp2:D