2013-07-17 23 views
0

我需要根據另外兩個表的聯接來更新一個主表。 可以anyoe請給我提供最好的方法,因爲我需要使用此更新來更新數百萬條記錄。根據另外2個表中的數據更新ORACLE中的語句

+0

向我們展示迄今爲止所寫的表和/或SQL。 – austin

+0

我需要做這樣的事情UPDATE TABLEB set f_key =(從表A中選擇p_key在tableA.id = tableC.id上的連接表c) – user2501620

+0

共享詳細信息,包含您嘗試的一些代碼 – abhi

回答

0

也許這個例子將是有益的:

CREATE TABLE A(
    ID INT, 
    STR VARCHAR2(10)); 
CREATE TABLE B(
    ID INT, 
    STR VARCHAR2(10)); 

INSERT INTO A VALUES(1,'A1'); 
INSERT INTO A VALUES(2,'A2'); 
INSERT INTO A VALUES(3,'A3'); 
INSERT INTO B VALUES(1,'B'); 
INSERT INTO B VALUES(3,'C'); 
INSERT INTO B VALUES(4,'D'); 

/*HERE THE QUERY!!*/ 
MERGE INTO A 
USING (select ID, STR 
      from B) B 
ON (A.ID = B.ID) 
WHEN MATCHED THEN 
UPDATE SET A.STR = B.STR; 

這裏其他查詢,但也許將有NULL值的問題(試行here):

UPDATE A 
SET STR = (
    SELECT STR 
    FROM B 
    WHERE A.ID = B.ID); 

你可以試試這個here

0

我覺得你需要的是相關更新聲明,檢查這個鏈接Oracle correlated UPDATE

+0

檢查在這裏我後,這是「相關更新」的一個例子。 –

+0

我們都在同一時間回答,你給了他一個例子,我告訴他它是什麼:) –

相關問題