使用同一表中另一条记录的值更新一条记录的值

时间:2011-11-03 15:10:41

标签: sql sql-update drupal-webform

对你们来说,我有一个棘手的SQL问题。 我正在使用drupal的Webform模块。

此模块的工作原理:
- webform上的每个项目都是'webform_submitted_data'表中的新记录,
- sid =注册用户
- cid = webform字段

表的结构:

  

NID | SID | CID |没有| DATA

     

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

     

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

问题: - 应使用相同SID的CID 56值更新CID 64。

2 个答案:

答案 0 :(得分:4)

我认为应该如下:

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),然后在查询中同时包含两个字段,因此您可以简单地同时参考每个字段。

答案 1 :(得分:1)

对于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