更新和存在子句



请帮助我确定我在下面的查询中做错了什么:

下面的代码给出一个错误:ORA-00904: DPT。DEPTNO:无效标识符

UPDATE emp1 
SET ename = (SELECT dname
FROM dpt 
WHERE dpt.deptno = emp1.deptno)
WHERE EXISTS (SELECT ename
FROM emp1 
WHERE emp1.deptno = dpt.deptno);

查询的前半部分单独运行良好:

UPDATE emp1 
SET ename = (SELECT dname
FROM dpt 
WHERE dpt.deptno = emp1.deptno)

第二个子查询中的表是错误的:

UPDATE emp1 
SET ename = (SELECT dname FROM dpt WHERE dpt.deptno = emp1.deptno)
WHERE EXISTS (SELECT 1 FROM dpt WHERE emp1.deptno = dpt.deptno);
----------------------------^

很奇怪,您将名为ename的列设置为可能是一个部门的名称。但那是另一回事。

最新更新