Jörg: Unterschiedliche Ergebnissmenge im Script vs. phpMyAdmin / Oh, Mist

Beitrag lesen

Hallo Rolf,

Beispiel - keine Ahnung ob das bei Dir fachlich vorkommen kann. Ohne Kenntnis der Anwendung ist sein Vorkommen aber durchaus denkbar.

Berechtigter Einwand. Prinzipiell wäre das zwar unproblematisch, aber Du hast recht, sauberer wäre die Berücksichtigung eines solchen Falles.

Erstelldatum   del
05.01.2022     0
05.01.2022     1
10.01.2022     1

Dein SELECT MAX(Erstelldatum) würde Dir den 10.01. liefern. Da zu diesem Datum aber alle Rows del=1 haben, führt das dazu, dass Du nichts joinst.

D.h. Du solltest die Abfrage del = 0 auch in der Maximumbestimmung vorsehen. Sie nur dort zu machen wäre wieder inkorrekt, denn dann würdest Du zwar korrekt den 05.01. als MAX(Erstelldatum) bestimmen, dann aber auch die gelöschten Sätze hinzujoinen.

Hm, habe ich versucht, bekomme aber "den 05.01" (bei mir ist das Beispiel etwas anders) nicht angezeigt.

AND (((dg.Erstelldatum = (SELECT MAX(Erstelldatum)
                                  FROM dgdgdg
                                  WHERE MaschinenID = m.MaschinenID 
                                  AND dg.del = 0))) AND dg.del = 0)
WHERE ...

Wo habe ich den Fehler gemacht?

Jörg