2013-05-12 86 views
-2

我有表名emp 3列empiddatof birthdojSQL查询帮助我正确的更新语句

有一个另一个表test,它有2列empiddate of birth。这两个表中的员工ID是相同的。

我的要求是在emp表中出生日期(DOB)列一些员工是谁巡航能力日期'01/05/2011' 已经通过在表中的DOB 2(测试)

我需要更新更新声明。

我加入我得到了一些记录,现在我需要更换员工在表1 DOB从表2(试验)同一名员工的日期DOB查询

+1

显示你的连接查询... – 2013-05-12 10:51:25

+1

多少次,你想这个回答? http://stackoverflow.com/questions/16505612/update-query-resulting-wrongly/16505716#16505716 – 2013-05-12 11:42:53

回答

0

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 
+0

对不起兄弟它不工作......它抛出一个错误............. ....... ORA-01779:无法修改映射到非密钥保存表的列 – sai 2013-05-12 11:35:03

+0

empid是唯一的吗?如果没有,请添加唯一约束,以确保不会有模棱两可的行。 – 2013-05-12 11:42:55

+0

使测试表(table2)的唯一性... – 2013-05-12 11:44:59