Ich habe eine Reihe hilfreicher Antworten zum Aktualisieren von Tabellenwerten aus einer anderen Tabelle mit mehreren Werten basierend auf einem Zeitstempel mit einer MAX() - Unterabfrage gesehen.MYSQL-Update von einer anderen Tabelle mit mehreren Einträgen
z.B. Update another table based on latest record
Ich fragte mich, wie das im Vergleich zu einem ALTER zuerst und auf die Reihenfolge in der Tabelle, um die UPDATE zu vereinfachen vergleicht. Etwas wie folgt aus:
ALTER TABLE `table_with_multiple_data` ORDER BY `timestamp` DESC;
UPDATE `table_with_single_data` as `t1`
LEFT JOIN `table_with_multiple_data` AS `t2`
ON `t1`.`id`=`t2`.`t1id`
SET `t1`.`value` = `t2`.`value`;
(Entschuldigung für die Pseudo-Code, aber ich hoffe, Sie bekommen, was ich frage)
beide das gleiche für mich zu erreichen, aber haben nicht wirklich groß genug Datensatz zu sehen irgendein Unterschied in der Geschwindigkeit.
Danke !!
** Niemals ** verlassen Sie sich auf eine ** angenommene ** Reihenfolge der Datensätze in einer Tabelle. – Uueerdo
Das Ergebnis würde nicht dasselbe bewirken: In der SQL-Reihenfolge ist nicht garantiert, so dass die Daten in Ihrer Tabelle in einer SQL-Anweisung nichts garantieren (meistens würde dies das von Ihnen erwartete Ergebnis anzeigen, aber manchmal nur wird nicht): Wenn sich die Daten bereits im Speicher befinden, kann die Datenbank-Engine möglicherweise entscheiden, die Join-Reihenfolge anders als erwartet auszuführen. –
Danke! Ich dachte, es könnte einen Grund dafür geben, dass die ALTER-Methode nie zuvor beantwortet wurde !!! –