2011-11-03 95 views
0

我已經爲您們解決了一個棘手的SQL問題。 我正在使用drupal的Webform模塊。使用同一表中的另一條記錄的值更新一條記錄的值

這個模塊是如何工作的:
- 在網絡表單每一個項目是在「webform_submitted_data'表,
一個新的紀錄 - SID =註冊用戶
- CID =網絡表單領域

結構表:

NID | SID | CID | NO | DATA

1 --- --- 168 --- 1 --- 0 XXX

1 --- --- 168 --- 2 0 --- YYY

的問題: - CID 64應該更新爲同一SID的CID 56的值。

回答

0

我覺得應該是如下:

UPDATE webform_submitted_data as a, webform_submitted_data as b 
SET a.data = b.data WHERE a.sid = b.sid AND a.cid = 64 AND b.cid = 56 

基本上,你自聯接表(匹配的SID),然後你在查詢這兩個領域,所以你可以簡單地指每一次。

+0

幾乎正確,但它不是應該被複制的cid,而是該cid的數據:) –

+0

絕對正確! :)(更正) – Aurimas

0

對於SID的每個值,這會將CID 56的數據複製到CID 64。這是SQL Server語法。

update yt64 
set  Data = yt56.Data 
from YourTable yt64 
join YourTable yt56 
on  yt64.SID = yt56.SID 
where yt64.CID = 64 
     and yt56.CID = 56 
相關問題