Heim >Datenbank >MySQL-Tutorial >Wie aktualisiere ich eine Tabelle mit Daten aus einer anderen Tabelle basierend auf übereinstimmenden IDs und Sortierreihenfolge?
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!