Ich habe zwei Tische, die beide so aussehen
id name value
===================
1 Joe 22
2 Derk 30
Ich muss den Wert von value
von tableA
bis tableB
basierend auf dem Prüfnamen in jeder Tabelle kopieren .
Irgendwelche Tipps für diese UPDATE
Aussage?
mysql
sql
sql-update
LeoSam
quelle
quelle
INNER JOIN
ist perfekt in dieser Situation. Ich habe auchCONCAT_WS
den Produktnamen und die SKU aus einer anderen Tabelle zusammengeführtUPDATE participants_registrations INNER JOIN participants ON participants.id = participants_registrations.participantId INNER JOIN registrations ON registrations.id = participants_registrations.registrationId LEFT JOIN groups ON (groups.id = registrations.groupId) SET registrations.groupId = groups.id, registrations.groupName = groups.name, participants.memberOfGroupName = groups.name
Sie müssen die beiden Tabellen verbinden:
Sie möchten beispielsweise den Wert von
name
aus Tabelle A an die Stelle kopieren, an dertableB
sie denselben Wert habenID
UPDATE 1
UPDATE 2
quelle
where
Klausel einfach entfernen oder ändernwhere
, je nach Ihren Anforderungen.Die zweite Möglichkeit ist:
quelle
.name
es auf beiden Tabellen indiziert ist?Die zweite Option ist auch möglich, wenn Sie den sicheren Aktualisierungsmodus verwenden (und eine Fehlermeldung angezeigt wird, dass Sie versucht haben, eine Tabelle ohne ein WHERE zu aktualisieren, das eine KEY-Spalte verwendet), indem Sie Folgendes hinzufügen:
quelle
quelle
Speichern Sie Ihre Daten in einer temporären Tabelle
Aktualisieren Sie nun die Spalte
quelle
In meinem Fall war die akzeptierte Lösung einfach zu langsam. Für eine Tabelle mit 180 KB Zeilen betrug die Aktualisierungsrate etwa 10 Zeilen pro Sekunde. Dies gilt für die Indizes der Join-Elemente.
Ich habe mein Problem schließlich mithilfe eines Verfahrens gelöst:
Ich hoffe, es wird in Zukunft jemandem helfen, so wie es mir geholfen hat
quelle
Wenn Sie in beiden Tabellen ein gemeinsames Feld haben, ist es so einfach! ....
Tabelle 1 = Tabelle, in der Sie aktualisieren möchten. Tabelle 2 = Tabelle, aus der Sie Daten entnehmen.
quelle