更新和EXISTS条款

时间:2015-09-27 17:08:37

标签: sql oracle

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

以下代码给出错误: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)

1 个答案:

答案 0 :(得分:2)

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

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的列设置为可能是部门的名称。但那是另一回事。