Mit SQL alle Bestellungen mit bestimmten Status auslesen?

Ich versuche über SQL alle Bestellungen nur mit bestimmten Bestellstatus auszulesen. Jetzt ist es allerdings so, das Bestellungen mehrmals in der Tabelle liegen könnnen, weil sich ein Status ggf. schon geändert hat. Also brauch ich immer nur den aktuellsten Datensatz der Bestellung.

Beispiel:

Die Bestellung mit 955835 gibt es mehrmal. Beim Auslsen brauch ich aber nur die Zeile mit auto_incremt 253584. Dies ist der aktuelle Wert der Bestellung. Nun Rätsel ich wie ich das per SQL auslesen könnte.

PS: Bevor es unnötige Fragen gibt. Im Beispiel steht bei „state_id“ ein eigener Bestellstatus. Das hat seinen Grund und soll hier nicht Gegenstand der oben erwähnte Frage sein.

Reicht da nicht ein ORDER BY date und dann DISTINCT oder GROUP BY?

Viele Grüße

Ich schau noch mal, ggf. hab ich auch Brett vorm Kopf.

Und denk an die live version. Alle anderen sind irrelevant.

Viele Grüße

Ähm, echt? Wieso?

Die anderen Zeilen sind doch geänderte Einstellungen bei der Bestellung. Genau das muss ich aber berücksichtigen. Oder steht zu 100% immer bei der Live Version der aktuelle Status?

Könnte man meinen - auch bei Produkten, Kunden etc. Leider ist das aber nicht so konsequent durchgesetzt. IMMER nur die live Version ist interessant.

Viele Grüße

1 Like

Oh, da war ich also fast auf dem Holzweg. Hatte mich zusehr auf created_at verlassen.

Immer wenn du Daten liest, immer nur die live version beachten. Auch wenn du z.B. joinst dann immer nur auf die live version joinen (da ist auch der Index drauf: id + version).

Viele Grüße

1 Like

Woran erkenn ich denn sicher die „Live-Version“? Die mit dem neuesten Zeitstempel bzw. dem höchsten auto_increment? Oder hab ich ein Feld übersehen?

Die live version ist eine Konstante: shopware/src/Core/Defaults.php at trunk · shopware/shopware · GitHub

Viele Grüße

Ahh, Danke. Die Konstante kenne ich, hab das aber so nicht verknüpft. Dann wird die „alte“ Version kopiert mit neuer zufälliger ID und der Datensatz mit der Konstante wird aktualisiert?