Denkfehler bei SQL-Abfrage?
bearbeitet von Rolf BHallo Klaus1,
> ich möchte mit einer SQL-Abfrage alle Protokolleinträge älter als x Tage finden.
Das tut deine Abfrage definitiv nicht. Ich würde das Ergebnis so formulieren: Du willst herausfinden, wann die letzte Anmeldung derjenigen User war, die sich seit dem 1. April nicht mehr angemeldet haben.
Der Denkfehler der Ursprungsquery ist dieser:
- User X meldet sich am 25.03. und am 02.04. an.
- User Y meldet sich zuletzt am 25.03. an.
Wenn nun der Satz betrachtet wird, der die Anmeldung von User X am 25.03. protokolliert, dann wird dieses Login-Datum mit den letzte Logins aller User verglichen. Gefunden wird der Login von Y, und der Satz ist ein Treffer.
Deine modifizierte Query macht es richtig: sie betrachtet nur das jüngste Login-Datum des Users, dem der aktuelle Satz gehört.
> Es gibt einen Index, sowohl auf username als auch auf logindate.
Bitte formuliere das genauer. Wieviele Indexe gibt es, welcher Art sind sie und in welchem Index befinden sich welche Key-Columns?
_Rolf_
--
sumpsi - posui - obstruxi