2017-08-18 1 views
0

Ich habe zwei Tabellen. Nutzer1:SQL Server: Wie aktualisiert man eine Tabelle mit Werten aus einer anderen Tabelle

UserID HolidayCity ValidFrom ValidTo 
1  NULL  '1900-01-01' '2017-05-09' 
1  NULL  '2017-05-09' NULL 
2  NULL  '1900-01-01' '2017-05-09' 
2  NULL  '2017-05-09' NULL 

Users2:

UserID CityID 
1  33 
2  55 

Ich brauche Holidaycity Spalte aus der ersten Tabelle mit den Werten in CityID Spalt aus der zweiten Tabelle für jede Benutzer-ID zu aktualisieren, sondern nur die Datensätze, wo ValidTo IS NULL, so dass die resultierende Tabelle Nutzer1 würde:

UserID HolidayCity ValidFrom ValidTo 
1  NULL  '1900-01-01' '2017-05-09' 
1  33   '2017-05-09' NULL 
2  NULL  '1900-01-01' '2017-05-09' 
2  55   '2017-05-09' NULL 

können Sie mir bitte sagen, h Was soll ich tun?

+0

Danke Alles für schnelle Antworten. Sie sind alle praktisch gleich und sie arbeiten für mich. –

Antwort

3

Dies ist eine einfache inner join

update u 
    set u.holidaycity=c.cityid 
from users1 u 
    inner join users2 c 
    on u.userid = c.userid 
    and u.validto is null 
0
UPDATE  U1 
SET   U1.HolidayCity = U2.CityID 
FROM  Users1   AS U1 
INNER JOIN Users2   AS U2 ON U2.UserId = U1.UserId 
WHERE  U1.ValidTo IS NULL 

Wenn Sie Fragen zu dem oben genannten Code haben, gerne zu erweitern, aber das ist ein einfaches Update-Format.

0

Try this:

update a 

set a.HolidayCity = b.CityID 
FROM   Users1 AS a INNER JOIN 
         Users2 AS b ON a.UserId = b.UserId 
WHERE  (a.ValidTo IS NULL) 
0

Der einfache Weg, um den Inhalt von einem Tisch zum anderen ist wie folgt zu kopieren:

UPDATE table2 
SET table2.col1 = table1.col1, 
table2.col2 = table1.col2, 
... 
FROM table1, table2 
WHERE table1.memberid = table2.memberid 
+2

Ich rate Ihnen, ANSI-Joins zu verwenden, der Code, den Sie dort haben, ist ziemlich veraltet. Lesen Sie hier: http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx – Leonidas199x

+0

@ Leonidas199x ja, ich überprüfe tankyou für beraten –

Verwandte Themen