Rolf B: Unterschiedliche Ergebnissmenge im Script vs. phpMyAdmin / Oh, Mist

Beitrag lesen

Hallo Jörg,

um - keine Ahnung. Du hast LISP-SQL geschrieben (LISP: Die Programmiersprache mit mehr Klammern als Code), aber wenn ich das in einen Editor kopiere und durch Einrückungen gliedere, sieht es nicht falsch aus.

Was vermutlich kein Problem ist, ist der Umstand, dass Du im MAX-Select mit m.MaschinenID vergleichst, obwohl sich der Subselect auf die dg Tabelle bezieht. Während der Auswertung eines konkreten Subselect sollten diese beiden Werte identisch sein, deswegen meine ich, dass es unproblematisch ist.

Vorschlag zur Fehlereingrenzung:

Such Dir eine Maschinen-ID, für die Du Ergebnisse erwartest. Sagen wir mal, das wäre die 4711.

Schau Dir an, was

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

liefert. Muss ja irgendein Datum sein, sowas wie 'xx.yy.20zz'

Setze dieses Datum händisch in deine Query, an Stelle des Subselect

SELECT
      m.Bla
FROM
      maschinen m
LEFT JOIN
      dgdgdg dg ON m.MaschinenID = dg.MaschinenID
               AND dg.Erstelldatum = 'xx.yy.20zz'
               AND dg.del = 0
WHERE
      m.MaschinenID IN (4711) 
  AND m.MaschinenDel != 1
ORDER BY
      dg.ID ASC

Und dann mal weiter 'rantasten. Ohne deine DB kann ich das jetzt auch nicht näher erklären. Es kann auch an dem Teil der Query liegen, den Du aus Gründen von Betriebsgeheimnissen nicht zeigst.

Wenn Du nachher den Subselect wieder einsetzt: Ersetze nur 'xx.yy.20zz' durch (SELECT MAX(...) WHERE ...) - mehr Klammern braucht es nicht.

Rolf

--
sumpsi - posui - obstruxi