我有表名emp
3列empid
,datof birth
,doj
SQL查询帮助我正确的更新语句
有一个另一个表test
,它有2列empid
date of birth
。这两个表中的员工ID是相同的。
我的要求是在emp表中出生日期(DOB)列一些员工是谁巡航能力日期'01/05/2011' 已经通过在表中的DOB 2(测试)
我需要更新更新声明。
我加入我得到了一些记录,现在我需要更换员工在表1 DOB从表2(试验)同一名员工的日期DOB查询
我有表名emp
3列empid
,datof birth
,doj
SQL查询帮助我正确的更新语句
有一个另一个表test
,它有2列empid
date of birth
。这两个表中的员工ID是相同的。
我的要求是在emp表中出生日期(DOB)列一些员工是谁巡航能力日期'01/05/2011' 已经通过在表中的DOB 2(测试)
我需要更新更新声明。
我加入我得到了一些记录,现在我需要更换员工在表1 DOB从表2(试验)同一名员工的日期DOB查询
Oracle不直接与UPDATE
声明支持JOIN
查询.. 。
一种解决方法是这样的:
UPDATE
(SELECT emp.dob AS emp_dob, test.dob AS test_dob
FROM emp
INNER JOIN test
ON emp.empid = test.empid
) tbl
SET tbl.emp_dob = tbl.test_dob
对不起兄弟它不工作......它抛出一个错误............. ....... ORA-01779:无法修改映射到非密钥保存表的列 – sai 2013-05-12 11:35:03
empid是唯一的吗?如果没有,请添加唯一约束,以确保不会有模棱两可的行。 – 2013-05-12 11:42:55
使测试表(table2)的唯一性... – 2013-05-12 11:44:59
显示你的连接查询... – 2013-05-12 10:51:25
多少次,你想这个回答? http://stackoverflow.com/questions/16505612/update-query-resulting-wrongly/16505716#16505716 – 2013-05-12 11:42:53