2014-01-29 89 views
0

我需要您幫助更新表中的更改。從某個字段的另一個表更新表

我要更新的表是IP_VISIT_EASTERN_REGION,我想更新的領域是VISIT_STAT

所以我寫了這個查詢

UPDATE IP_VISIT_EASTERN_REGION SET 
IP_VISIT_EASTERN_REGION.VISIT_STAT=TEST_IP_VISIT_EASTERN_REGION.VISIT_STAT 
WHERE IP_VISIT_EASTERN_REGION.VISIT_ID = TEST_IP_VISIT_EASTERN_REGION.VISIT_ID 

的問題是,我得到一個錯誤

ORA-00904 INVALID IDENTIFIER 

,這是做到這一點的正確方法。

您的幫助將非常感激。

謝謝

+1

那麼,什麼是問題? –

+0

爲了清楚起見,請做目前的表格結構。 – Charlesliam

回答

0

您無法通過使用連接寫從SELECTUPDATE。改爲嘗試這種方法。

update set from inner join query thowing error

你的情況:

UPDATE IP_VISIT_EASTERN_REGION REGION 
SET REGION.VISIT_STAT= (SELECT TEST.VISIT_STAT 
         FROM TEST_IP_VISIT_EASTERN_REGION TEST 
         WHERE REGION.VISIT_ID = TEST.VISIT_ID) 
WHERE EXISTS (SELECT TEST.VISIT_STAT 
       FROM TEST_IP_VISIT_EASTERN_REGION TEST 
       WHERE REGION.VISIT_ID = TEST.VISIT_ID); 

小提琴:

http://sqlfiddle.com/#!4/2178ae/1

+0

謝謝,但我得到了這個錯誤.. ORA-01427:單行子查詢返回多個行 – FatherofFaris

+0

'VISIT_ID'不是'TEST_IP_VISIT_EASTERN_REGION'中的主鍵嗎?我假設它會在表格中識別出一個唯一的行嗎?否則,您如何知道'TEST'表中的哪條記錄用於更新? – Drumbeg

+0

我有一個複合鍵 – FatherofFaris

相關問題