SQL-Aktualisierung von einer Tabelle zu einer anderen basierend auf einer ID-Übereinstimmung
Ich habe eine Datenbank mit account numbers
und card numbers
. Ich ordne diese in eine Datei zu update
beliebige Karte zu zahlen auf das Konto-Nummer, so dass ich nur mit Rechnung zahlen.
Erstellte ich eine Ansicht verknüpfen Sie die Tabelle, um die Konto - /Karten-Datenbank zurück, die Table ID
und der zugehörigen Kontonummer und jetzt muss ich update die Datensätze wo die ID übereinstimmt mit der Konto-Nummer.
Dies ist die Sales_Import
Tabelle, wo die account number
Feld aktualisiert werden muss:
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
- Und dies ist die RetrieveAccountNumber
Tabelle, wo ich aktualisieren von:
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
Ich habe versucht, das unten, aber kein Glück so weit:
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
Es updates der Karten-Nummern, Konto-Nummern, aber die Rechnung zahlen wird ersetzt durch NULL
InformationsquelleAutor der Frage | 2008-10-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube, dass eine
UPDATE FROM
mit einemJOIN
helfen:MS SQL
MySQL und MariaDB
InformationsquelleAutor der Antwort Mark S. Rasmussen
Den einfachen Weg um den Inhalt zu kopieren von einer Tabelle in eine andere ist wie folgt:
Können Sie auch die Bedingung hinzuzufügen, um die bestimmten Daten kopiert.
InformationsquelleAutor der Antwort Shivkant
Für SQL Server 2008 + Mit
MERGE
anstatt der proprietärenUPDATE ... FROM
syntax hat einige Appell.Sowie als standard-SQL-und damit mehr tragbar, es wird auch ein Fehler im Falle von mehreren verknüpften Zeilen auf der source-Seite (und damit mehrere mögliche verschiedene Werte zu verwenden, die im update), anstatt das Endergebnis undeterministic.
Leider die Wahl, welche zu verwenden, die nicht kommen können unten rein zu bevorzugten Stil jedoch. Die Umsetzung der
MERGE
im SQL Server heimgesucht wurde, die mit verschiedenen bugs. Aaron Bertrand hat eine Liste zusammengestellt das berichtet hier.InformationsquelleAutor der Antwort Martin Smith
Generische Antwort für zukünftige Entwickler.
SQL Server
Oracle (SQL Server)
MySQL
InformationsquelleAutor der Antwort Tigerjz32
Scheint, Sie sind mit MSSQL, dann, wenn ich mich richtig erinnere ist es wie folgt vorgenommen:
InformationsquelleAutor der Antwort Vinko Vrsalovic
Ich hatte das gleiche problem mit
foo.new
gesetzt zunull
für Reihen vonfoo
hatte keinen passenden Schlüssel inbar
. Ich habe so etwas in Oracle:InformationsquelleAutor der Antwort Kjell Andreassen
Für MySql, die gut funktioniert:
InformationsquelleAutor der Antwort marsanvi
For PostgreSQL:
InformationsquelleAutor der Antwort petter
Für MySql:
Für Sql Server:
Ich habe alle oben genannten Fragen, aber Sie sind nicht funktioniert, und wenn ich diese ein, es ist getan.
Du es fangen kannst auch von hier aus, https://stackoverflow.com/questions/5036918/update-one-table-with-data-from-another
Hoffe, dass u bekommen es. Dank
InformationsquelleAutor der Antwort sunil
Danke für die Antworten. Ich habe eine Lösung gefunden, tho.
InformationsquelleAutor der Antwort
update innerhalb der gleichen Tabelle:
InformationsquelleAutor der Antwort NCP
Den folgenden SQL jemand vorgeschlagen, funktioniert NICHT in SQL Server. Diese syntax erinnert mich an meine alte Schule Klasse:
Alle anderen Abfragen mit
NOT IN
oderNOT EXISTS
sind nicht zu empfehlen. Null-Werte auftauchen, weil OP vergleicht gesamten Datenbestand mit kleineren Teilmenge, dann gibt es natürlich passend sein problem. Diese müssen behoben werden, durch das schreiben von korrekten SQL mit der richtigenJOIN
statt auszuweichen problem mitNOT IN
. Vielleicht laufen andere Probleme durch die VerwendungNOT IN
oderNOT EXISTS
in diesem Fall.Meine Stimme für die oberste, das ist herkömmliche Weise, das aktualisieren einer Tabelle basierend auf einer anderen Tabelle, indem Sie sich in SQL Server. Wie ich schon sagte, Sie können zwei Tabellen in der gleichen
UPDATE
- Anweisung in SQL Server, wenn Sie sich Ihnen anschließen ersten.InformationsquelleAutor der Antwort Dr Inner Join
es funktioniert mit postgresql
InformationsquelleAutor der Antwort jakentus
Ich dachte, dies ist ein einfaches Beispiel könnte jemand bekommen, der es einfacher,
InformationsquelleAutor der Antwort user824910
Dies ermöglicht es Ihnen, aktualisieren einer Tabelle, basierend auf den Wert in der Spalte nicht gefunden wird in einer anderen Tabelle.
Aktualisieren Sie eine Tabelle, basierend auf den Wert in der Spalte gefunden wird, die in beiden Tabellen.
InformationsquelleAutor der Antwort CG_DEV
versuchen Sie dies :
InformationsquelleAutor der Antwort Oriel.F
Verwenden Sie den folgenden block der Abfrage zum update Tabelle1 mit Tabelle2 basiert auf ID:
Dies ist die einfachste Weg, um dieses problem anzugehen.
InformationsquelleAutor der Antwort Gil Baggio
Ich möchte noch hinzufügen, dass eine extra Sache.
Nicht aktualisieren einen Wert mit dem gleichen Wert, es entsteht eine zusätzliche Protokollierung und unnötigen Aufwand.
Siehe Beispiel unten - es wird nur führen Sie das update auf 2 Platten trotz Verlinkung auf 3.
InformationsquelleAutor der Antwort pacreely
Wenn die obigen Antworten nicht funktioniert, versuchen Sie es mit dieser
InformationsquelleAutor der Antwort Shaw