Halihallo rainerTS
SELECT time
FROM blabla
HAVING MAX(time) < irgendeinwert
GROUP BY time
@Andi: GROUP BY ist *immer* vor HAVING!
Hmm, leider ist die Abfrage doch etwas komplexer - es ist eine Abfrage, welche meiner buddies / freunde einer Community gerade OFFline sind -> offline ist jemand, der entweder nicht in der Tabelle sessions steht, oder eben doch in der Tabelle steht, dessen größte Zeit aber kleiner ist als irgendeinwert
Wie bekomm ich da nun das HAVING rein, was ja eigentlich erst nach GROUP BY kommt, aber eine Alternative in der WHERE-Klausel darstellt?
Entweder du machst es via Subselect in der WHERE-Klausel, oder mit
einem Self-Join und GROUP BY über HAVING. Etwas mehr Fleisch um den
Knochen:
(Mit Subselect; MySQL>4.x):
SELECT *
FROM
session
WHERE
time >= ALL(
SELECT time FROM session WHERE time IS NOT NULL
)
oder (mit HAVING und Self-Join; MySQL<4.x)
SELECT a.sess_id, a.time
FROM
session AS a,
session AS b
GROUP BY
<PRIMARY KEY('s) VON a> , a.time, ...
HAVING
a.time>=MAX(b.time)
Bemerkung: in GROUP BY *muss* der gesamte PRIMARY KEY der Relation
session (bezgl. Alias a) und alle Attribute, die in
SELECT projeziert werden enthalten sein.
Viele Grüsse
Philipp