我有 3 張桌子,它們相互關聯。如何將資料從表 3 上傳到表 1?
我試過這個代碼:
UPDATE table1
SET t1.new_column = t3.old_data
FROM table1 t1
INNER JOIN table2 t2 ON t1.some_key = t2.some_key
INNER JOIN table3 t3 ON t2.some_key2 = t3.some_key2;
但它不起作用。謝謝!
uj5u.com熱心網友回復:
在 Oracle 中更新聯接是先使用聯接然后使用更新來完成的。因此語法如下:
UPDATE (
select t1.new_column , t3.old_data
FROM table1 t1
INNER JOIN table2 t2 ON t1.some_key = t2.some_key
INNER JOIN table3 t3 ON t2.some_key2 = t3.some_key2
)
set new_column = old_data
連接必須產生所謂的“保留鍵”的資料,即從查詢回傳的行必須與目標表中的行一一映射,否則會出錯。
出于這個原因,人們經常選擇將他們的更新重寫為 MERGE 陳述句。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/338219.html
