2015-05-15 112 views
0

我更新一個表的數據時出現了一個小問題,請幫助。將數據從一個表更新到另一個表

l與列

Make 
Model 
OEMNumberLatest 
OemNumberPrevious 
cStockCode 
cDescription 

兩列cStockCodecDescription是此刻空白和正在等待被填充,並且所述第二表cStockCode列和Description

的問題是如何將表c的內容移動/複製到表l的行中?

c.StockCode = l.OEMNumberLatest和或c.StockCode = l.OemNumberPrevious

+0

加入表格並進行更新? –

+1

請發表表格DDL,以便我們看到表格的樣子。 –

回答

0

這是使用另一個表

UPDATE tableL SET 
tableL.cStockCode=tableC.StockCode,tableL.cDescription=tableC.Description 
FROM tableL 
JOIN tableC ON 
(tableC.StockCode = tableL.OEMNumberLatest) 
OR 
(tableC.StockCode = tableL.OemNumberPrevious); 

我assument在tableC內容是在tableL待填充一個更新語法的示例,並且JOIN是基於在StockCodeOEMNumberLatestOemNumberPrevious

0

試試這個(保存你的數據然後再嘗試,我是不知道你的數據庫結構):

UPDATE l 
SET l.cStockCode = c.StockCode, l.cDescription = c.Description 
FROM l 
INNER JOIN c ON (c.StockCode = l.OEMNumberLatest OR c.StockCode = l.OemNumberPrevious) 
1

你可能根本不移動一個表中的內容到另一個。這實在是更好地剛剛獲得的值,當你需要他們,使用連接:

select l.*, c.cStockCode, c.cDescription 
from table1 l join 
    c 
    on c.StockCode = l.OEMNumberLatest or c.StockCode = l.OemNumberPrevious; 

這似乎是一個奇怪的條件,與or因爲你可以得到多個匹配。

在任何情況下,你可以將此轉換爲update容易:

update table1 l join 
     c 
     on c.StockCode = l.OEMNumberLatest or c.StockCode = l.OemNumberPrevious 
    set l.cStockCode = c.cStockCode, 
     l.cDescription = c.cDescription; 

當兩個條件匹配,然後將一個任意用於update

+0

+用於指出它可以使用帶JOIN的SELECT來實現 –

+0

魔法師 – Faktuu

相關問題