2011-11-03 93 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 
相关问题