Обновить значение одной записи значением другой записи в той же таблице - PullRequest
1 голос
/ 03 ноября 2011

У меня сложный вопрос по SQL для вас, ребята. Я работаю с модулем Webform от drupal.

Как работает этот модуль:
- каждый элемент веб-формы является новой записью в таблице 'webform_submitted_data',
- sid = зарегистрированный пользователь
- cid = поле веб-формы

Структура таблицы:

NID | СИД | CID | НЕТ | DATA

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

1 --- 168 --- 2 --- 0 --- ГГГ

Проблема: - CID 64 должен обновляться со значением CID 56 того же SID.

Ответы [ 2 ]

4 голосов
/ 03 ноября 2011

Я думаю, что это должно быть следующим:

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 голос
/ 03 ноября 2011

Это скопировало бы данные CID 56 в CID 64 для каждого значения SID.Это синтаксис 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
...