Ich habe zwei Tabellen. Die Tabelle, die ich zu aktualisieren versuche, ist Tabelle A, die einige IDs ProfileIDs nicht hat. Auf der anderen Seite hat Tabelle B alle IDs. Ich versuche, die Spalte in Tabelle A basierend auf einer Abfrage zu aktualisieren. Wenn ich den Tabellen beitrete, erhalte ich alle Ergebnisse in meiner Abfrage, und wenn ich versuche, die Ergebnisse in meiner Spalte zu aktualisieren/einfügen, kann ich nicht in meine Tabelle einfügen. Ich habe vor, meine Ergebnisse mit der folgenden AbfrageDaten in Spalte basierend auf Abfrage einfügen
insert into TableA a
(profileID)
select b.profileID
from tableA
join TableB B on B.userID = A.userID
where a.profileID = '' or a.profileID is null
Table A Table B
UserID | profileID | lastname | Firstname UserID | profileID | lastname | Firstname
0Wung Clara 0Wung Clara
0512356 14753 Williams Michael 0512356 14753 Williams Michael
0956356 Walters Jeff 0956356 94356 Walters Jeff
0486312 68956 Wwagner George 0486312 68956 Wwagner George
select A.*, B.profileID
from TableA A
join TableB B on B.userID = A.userID
Results
UserID | profileID | lastname | Firstname
0Wung Clara
0512356 14753 Williams Michael
0956356 94356 Walters Jeff
0486312 68956 Wwagner George
Welche RDBMS verwenden Sie? Möchten Sie TabelleA aktualisieren, um die Profil-IDs zu haben? Ihre Ergebnistabelle ist nicht korrekt. A. * ist da, aber B.profileID ist nicht. –
Da diese Benutzer-IDs bereits in Tabelle A vorhanden sind, müssen Sie eine UPDATE-Anweisung anstelle einer INSERT-Anweisung ausführen. Oder Sie können diese Datensätze mit leerer profileID löschen und dann die neuen Werte einfügen. Achten Sie beim Einfügen auch darauf, dass alle Spalten in der insert select-Klausel enthalten sind. Andernfalls fügt es Standardwerte in die Spalten ein, die Sie in Ihrer SELECT-Klausel nicht angegeben haben. –
Mögliches Duplikat von [Wie aktualisiere ich von einem SELECT in SQL Server?] (Https://stackoverflow.com/questions/2334712/how-do-i-update-von-einem-select-in-sql-server) –