Как обновить StatusID в таблице X с помощью таблицы Y?Обновление с помощью Select
Таблица X имеет SourceId и старый StatusID
Таблица Y имеет SourceId и новый StatusID
update x
set StatusID= (select StatusID from Y)
where
SourceID = (select SourceID from Y)
Правильно ли это? Я боюсь запустить запрос на случай, если он все испортит ....
Я использую соединения, чтобы получить StatusID для таблицы Y, поэтому я думаю, что мне нужно использовать SELECT
.
Это, как я получаю SourceId и StatusID для таблицы Y
select t2.Sourceid, t3.ActionID
from tblSource t2
right join Y t1 on t1.BaselineSourceKey= t2.tempSourceID
right join lkuActionCode t3
on t3.actioncode = CASE
WHEN t1.actionCode = 'R' THEN 'N'
WHEN t1.actionCode = 'B' THEN 'R'
WHEN t1.actionCode = 'A' THEN 'R'
WHEN t1.actionCode = 'E' THEN 'N'
WHEN t1.actionCode = 'F' THEN 'S'
WHEN t1.actionCode = 'G' THEN 'S'
WHEN t1.actionCode = 'K' THEN 'DP'
WHEN t1.actionCode = 'Q' THEN 'C'
WHEN t1.actionCode = 'S' THEN 'AER'
WHEN t1.actionCode = 'T' THEN 'AEN'
WHEN t1.actionCode = 'U' THEN 'C'
WHEN t1.actionCode = 'V' THEN 'UR'
WHEN t1.actionCode = 'W' THEN 'R'
END
where actionid <> 10 and actionid <> 8 and actionid <> 3
Что именно вы пытаетесь сделать? Заполнить новый столбец или согласовать данные друг с другом? – 182764125216
Что вы собираетесь делать, если этот 'select StatusID from Y' запрашивает более одной строки данных? – VoodooChild
То, что вы разместили, является наиболее поддерживаемым средством обновления таблицы на основе значения от другого. MySQL и SQL Server - это единственные базы данных, которые я знаю о поддержке JOINs в синтаксисе UPDATE. –