Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich Tabellendatensätze basierend auf übereinstimmenden IDs in SQL?

Wie aktualisiere ich Tabellendatensätze basierend auf übereinstimmenden IDs in SQL?

Susan Sarandon
Susan SarandonOriginal
2025-01-23 00:53:10969Durchsuche

How to Update Table Records Based on Matching IDs in SQL?

SQL-Tabellendatensätze basierend auf ID-Übereinstimmung aktualisieren

Einführung

Bei der Datenbankverwaltung ist es manchmal notwendig, Daten in einer Tabelle basierend auf übereinstimmenden IDs in einer anderen Tabelle zu aktualisieren. Dies ist besonders nützlich, wenn Sie Daten migrieren oder Informationen zwischen Tabellen synchronisieren.

Problembeschreibung

Angenommen, wir haben eine Datenbank mit zwei Tabellen, Sales_Import und RetrieveAccountNumber. Jede Tabelle enthält eine Spalte mit dem Namen LeadID. Die Sales_Import-Tabelle verfügt über eine AccountNumber-Spalte, die mit dem passenden LeadID-Wert aus der RetrieveAccountNumber-Tabelle basierend auf dem passenden AccountNumber-Wert aktualisiert werden muss.

Fehlgeschlagener Versuch

Der erste Versuch, einen Datensatz mit der folgenden Abfrage zu aktualisieren, ist fehlgeschlagen:

<code class="language-sql">UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET    [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
                          FROM   RetrieveAccountNumber
                          WHERE  [Sales_Lead].[dbo].[Sales_Import]. LeadID =
                                                RetrieveAccountNumber.LeadID)</code>

Diese Abfrage ersetzt die Kontonummer durch einen NULL-Wert.

Lösung

Die Lösung für dieses Problem liegt in der Verwendung der UPDATE FROM-Syntax in Kombination mit Join-Operationen. Dieser Ansatz ermöglicht es uns, Datensätze in einer Tabelle basierend auf übereinstimmenden Werten in einer anderen Tabelle zu aktualisieren. Im Folgenden finden Sie SQL-Abfragen für verschiedene Datenbanksysteme:

MySQL und MariaDB

<code class="language-sql">UPDATE
    Sales_Import SI,
    RetrieveAccountNumber RAN
SET
    SI.AccountNumber = RAN.AccountNumber
WHERE
    SI.LeadID = RAN.LeadID;</code>

MS SQL

<code class="language-sql">UPDATE
    Sales_Import
SET
    Sales_Import.AccountNumber = RAN.AccountNumber
FROM
    Sales_Import SI
INNER JOIN
    RetrieveAccountNumber RAN
ON
    SI.LeadID = RAN.LeadID;</code>

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich Tabellendatensätze basierend auf übereinstimmenden IDs in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn