Erweiterte MySQL Query: Update Tabelle mit Informationen aus einer anderen Tabelle

StackOverflow https://stackoverflow.com/questions/1202075

  •  05-07-2019
  •  | 
  •  

Frage

Ich mag eine Tabelle in MySQL mit Daten aus einer anderen Tabelle aktualisieren.

Ich habe zwei Tabellen „Menschen“ und „Business“. Die Menschen Tabelle wird durch eine Spalte der Business-Tabelle verknüpft genannt „business_id“.

Die notwendige Tabellenstruktur wird Primärschlüssel Liebling (Tabelle: Spalten): Menschen: * business_id, * sort_order, E-Mail Geschäft: * business_id, E-Mail

Ich mag die Business-Tabelle E-Mail-Spalte mit der E-Mail aus dem Menschen Tabelle, um so etwas aktualisieren (ich weiß, dass ich etwas fehle hier):

UPDATE business b SET email = (SELECT email  from People p where p.business_id = b.business_id AND sort_order = '1') WHERE b.email = ''; 

Ist das sinnvoll? Ist es möglich?

War es hilfreich?

Lösung

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 = ''

Andere Tipps

Beachten Sie, wenn sort_order ein INT ist, dann nicht verwenden '1' - Verwendung 1:

UPDATE business b
JOIN People p
ON p.business_id = b.business_id
AND p.sort_order = '1'
SET b.email = p.email
WHERE b.email = '';

Versuchen Sie dies, es funktioniert gut für mich.

Update table a, table b
Set a.importantField = b.importantField,
a.importantField2 = b.importantField2
where a.matchedfield = b.matchedfield;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top