Brauche einen Tipp zu SQL und PHP
Matthias
- datenbank
Hallo,
ich habe folgendes Problem:
Ich möchte aus meiner Datenbank 2 spalten auswählen, nach der einen Gruppieren und nach der anderen innerhalb der Gruppierungen sortieren. Soweit so gut, nur wie bekomme ich jetzt mit php immer nur das erste Element einer jeden Gruppierung?
Meine SQL-Abfrgae lautet:
SELECT time,nutzer
FROM meineuser
GROUP BY nutzer
ORDER BY time DESC
Jetzt brauch ich die ersten Elemente der Gruppen, der Rest kann gelöscht werden. Kann ich das Löschen irgendwie in die Abfrage integrieren ?
Danke für Eure Hilfe, Matthias
Hi,
Jetzt brauch ich die ersten Elemente der Gruppen, der Rest kann gelöscht werden. Kann ich das Löschen irgendwie in die Abfrage integrieren ?
Filtern mit der TOP-Klausel bzw. mit der LIMIT-Klausel.
Gruss,
Lude
hi,
SELECT time,nutzer
FROM meineuser
GROUP BY nutzer
ORDER BY time DESC
meiner meinung nach geht das so nicht, da die spalte time nicht gruppiert ist. bei der verwendung von group by müssen alle spalten, die angezeigt werden sollen, auch in der group by klausel stehen, es sei den, es handelt sich um aggregat-funktionen. ansonsten hätten die spalten eine unterschiedliche anzahl von feldern und das kann man mit einer zweidimenstionalen tabelle nicht darstellen.
bekommst du darauf keine fehlermeldung oder irre ich mich ?
Ilja
Hi,
SELECT time,nutzer
FROM meineuser
GROUP BY nutzer
ORDER BY time DESC
wenn's beispielsweise darum geht haerauszufinden, wie lange welcher Nutzer eingeloggt war, dann fehlt doch eine Aggregatfunktion:
select
sum(time),
nutzer
from
meineuser
group by
nutzer
order by
times desc
Gruss,
Lude
Hoch lebe der heilige Self-Join:
SELECT DISTINCT m1.time, m1.nutzer FROM meineuser m1, meineuser m2 WHERE m1.nutzer=m2.nutzer AND m1.time>m2.time ORDER BY m1.nutzer