这有什么问题?或者有人可以帮助我理解这个代码想要做什么?
UPDATE copy_departments d
SET d.employee_name = (SELECT d.employee_name
FROM departments d
WHERE d.employee_name = d.department_id);
你得到的错误:
第 2 / 5 行出错:ORA-00904:"D." "EMPLOYEE_NAME":无效标识符
与此相关:
SQL> update copy_departments d
2 set d.employee_name = (select d.employee_name
3 from departments d
4 where d.employee_name = d.department_id);
set d.employee_name = (select d.employee_name
*
ERROR at line 2:
ORA-00904: "D"."EMPLOYEE_NAME": invalid identifier
这意味着目标表 (copy_department
) 不包含名为employee_name
的列。
除此之外:tablealiases在这里帮助我们阅读和理解查询。您的选择非常糟糕,因为您选择对两个表(departments
和copy_departments
)使用相同的别名-d
,因此我们真的不可能猜测哪个列属于哪个表。使用不同的别名
您问update
试图做什么:它想将copy_departments
表中的employee_name
更新为1
从我的角度来看(请注意,我不知道你的表的描述),这样的事情可能更有意义:
update copy_departments c
set c.employee_name = (select d.employee_name
from departments d
where d.department_id = c.department_id);
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(65条)