我遇到了Oracle更新SQL連接的問題。我有一個表A有5欄(C1, C2, C3, C4, C5)
;表B有3列(D1, D2, D3)
。對於表A,我只使用2列(C2, C3)
連接表B (D1, D2)
,並更新表A列C2與表B列D3。用連接更新重複列表
對於表A,C2和C3都會有很多重複;但對於條件C4爲10,將不會有重複,這是我想要更新。
例如,表A的記錄爲:
1,100,1500,10,'ORG'
1,200,2000,10,'ORG'
1,300,2500,10,'ORG'
2,1000,500,20,'PERSON'
2,1000,200,20,'PERSON'
2,2000,200,20,'PERSON'
你可以看到,對於C4爲10,對於C2和C3沒有重複。但對於C4爲20,C2和C3會有重複。
對於表B,就會像
100,1500,80
200,2000,100
300,3000,200
沒有爲表乙沒有重複,將加入B,其中A爲= A.C2和B.D1 = A.C3到B.D2將A.C2更新爲B.D3。
我只需要根據B.D1和B.D2更新C4 = 10個記錄以便與表B連接。
我有SQL如下,但未能爲
ORA-01779:無法修改列 映射到一個非關鍵保留 表
誰能告訴我是什麼我的SQL錯誤?
UPDATE (
SELECT A.C2 OID, B.D3 TID FROM A, B
WHERE A.C2 = B.D1 AND A.C3 = B.D2 AND A.C4=10 AND B.D3 <> ' ')
SET OID = TID
非常感謝!
你可以發佈一些創建表和插入語句..你的問題很難理解。 http://tkyte.blogspot.com/2005/06/how-to-ask-questions.html – 2011-04-18 20:32:25