2013-05-12 66 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