Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich eine Tabelle mit Daten aus einer anderen Tabelle basierend auf übereinstimmenden IDs und Sortierreihenfolge?

Wie aktualisiere ich eine Tabelle mit Daten aus einer anderen Tabelle basierend auf übereinstimmenden IDs und Sortierreihenfolge?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-31 03:08:02917Durchsuche

How to Update a Table with Data from Another Table Based on Matching IDs and Sort Order?

Erweiterte MySQL-Abfrage: Aktualisieren einer Tabelle mithilfe von Daten aus einer anderen Tabelle

Die vorliegende Aufgabe besteht darin, die E-Mail-Spalte in der Geschäftstabelle zu aktualisieren mit Daten aus der E-Mail-Spalte in der Personentabelle. Die beiden Tabellen sind durch die Spalte „business_id“ verbunden.

Ein einfacher Ansatz für diese Aktualisierungsabfrage ist wie folgt:

<code class="sql">UPDATE business b
SET b.email = (
    SELECT email
    FROM people p
    WHERE p.business_id = b.business_id AND sort_order = '1'
)
WHERE b.email = '';</code>

Diese Abfrage würde jedoch nur die allererste Übereinstimmung für jede business_id aktualisieren in der Personentabelle. Die Änderung, um sicherzustellen, dass wir alle relevanten Geschäftsdatensätze aktualisieren, ist:

<code class="sql">UPDATE business b, people p
SET b.email = p.email
WHERE b.business_id = p.business_id
AND p.sort_order = '1'
AND b.email = '';</code>

Durch die explizite Verknüpfung der Geschäftstabellen (b) und Personentabellen (p) mithilfe der JOIN-Syntax stellt die Abfrage sicher, dass nur Personen mit der höchsten Sortierreihenfolge ausgewählt werden Der Wert (d. h. in diesem Fall „1“) wirkt sich auf die Aktualisierung aus. Dies entspricht besser dem beabsichtigten Ziel, die Geschäftsdaten mit der E-Mail-Adresse der Person mit dem höchsten Rang für jedes Unternehmen zu aktualisieren.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich eine Tabelle mit Daten aus einer anderen Tabelle basierend auf übereinstimmenden IDs und Sortierreihenfolge?. 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