Wie kann ich StatusID in Tabelle X mithilfe der Tabelle Y aktualisieren?Update mit einem Select
Tabelle X hat SourceID und alte StatusID
Tabelle Y hat SourceID und neue StatusID
update x
set StatusID= (select StatusID from Y)
where
SourceID = (select SourceID from Y)
dies richtig ist? Ich habe Angst, die Abfrage auszuführen, falls es alles durcheinander bringt ....
Ich verwende Joins, um die StatusID für Tabelle Y zu bekommen, also denke ich, ich brauche eine SELECT
.
Dies ist, wie ich SourceID und StatusID für Tisch Y bekommen
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
verwenden Was genau wollen Sie tun? Füllen Sie eine neue Spalte oder halten Sie die Daten aufeinander abgestimmt? – 182764125216
Was tun Sie, wenn Sie mit 'StatusID von Y auswählen' mehr als eine Datenzeile abfragen? – VoodooChild
Was Sie gepostet haben, ist das am meisten unterstützte Mittel zum Aktualisieren einer Tabelle basierend auf dem Wert eines anderen. MySQL und SQL Server sind die einzigen Datenbanken, von denen ich weiß, dass sie JOINs in der UPDATE-Syntax unterstützen. –