2013-06-13 48 views
0

我需要根據id對應關係將數據從一個表(A)複製到另一個(B),但ID的對應關係實際上存儲在第三個表(C)中。 因此,與對應的表看起來像基於ID對應的更新表

C.A_ID C.B_ID 
1  33 
2  56 
3  74 

我想是這樣

UPDATE DB.A 
SET DB.A = DB.B 
FROM DB.A p 
INNER JOIN 
    DB.B p1 
INNER JOIN 
    DB.C p2 

如何插入ID對應?

+0

此外,你錯過了加入條件。這就像'A INNER JOIN B ON A.some_column = B.some_column' – fancyPants

+0

是的,你是對的。感謝您的意見,我通過如下方式解決了這個問題: 'insert into A(data) select * from(請選擇C.ID_A,B.data from B join C on(B.id = C.ID_B)) tmp' –

回答

0
UPDATE A , (select c.id1, b.data from B join C on (B.id2 = C.id2)) as Foo 
SET A.data = Foo.data 
WHERE 
A.id1 = Foo.id1 
+0

如上所述,我不得不使用_insert into_,但感謝你的例子,我能夠將它整理出來(見上文) –

0

您需要使用select into語句從一個表中選擇數據並插入另一個表中。