Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql UPDATE和EXISTS子句_Sql_Oracle - Fatal编程技术网

Sql UPDATE和EXISTS子句

Sql UPDATE和EXISTS子句,sql,oracle,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 = (

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

以下代码给出错误: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
的列设置为一个部门的名称。但那是另一回事。

我仍然不明白为什么我不能使用emp1<我只是在练习我的概念,所以我试着在不必制作新表格的情况下扭转局面
@ManushreeMishra。您正在外部查询中使用
emp1
。您希望根据查询中的其余逻辑将其与dpt进行比较。此答案更适用-