SQL Abfrage

martl92

Lieutenant
Registriert
Feb. 2009
Beiträge
598
Hallo,

habe n Problem: Ich habe eine Fotogallery erstellt, PHP und MYsql. Nun habe ich eine Tabelle für die Kommentare, wo alle eingetragen werden. Zum Kommentar kommen noch informationen wie Bildname usw. dazu um die Kommentare auch wieder zuordnen zu können. Funktioniert soweit einwandfrei, doch nun möchte ich die am meisten kommentierten Bilder ausgeben. Dazu brauche ich eine Abfrage die mir praktisch alle gleichen Datensätze zusammenzählt und so die Informationen zurückgibt die dem Bild gehören welches die meisten einträge hat.

Beispiel:
ID - BILD - Kommentar
1 - assad.jpg - nice
2 - 111.jpg - wie
3 - assad.jpg - gehts
4 - 222.jpg - euch?

So möchte ich nun eine Abfrage welches mir z.B. in diesem Fall den Datensatz mit dem Bild assad.jpg zurückgibt.

Hoffe jemand hat ne Antwort

mfg
 
Sollte so gehen:

SELECT bild, COUNT(bild) AS anzahl FROM tabelle GROUP BY bild ORDER BY anzahl DESC

Das ist jetzt eine Liste in der alle deine Bilder sind, dahinter steht, wieviele Kommentare es zu dem jeweiligen Bild gibt. Und das Bild mit den meisten Kommentaren steht oben.

Grüße
 
Wenn ich zum Schluss noch Limit 1 anhänge sollte teoretisch nur mehr das am meisten kommentierte Bild stehen oder???

mfg
 
Ich habs nicht ausprobiert... aber ungefähr so:

SELECT * from table where id = (SELECT id FROM table GROUP BY BILD ORDER BY sum(Kommentar) LIMIT 1)

*Edit blub ist natürlich viel zu kompliziert gedacht mal wieder

SELECT * FROM table GROUP BY BILD ORDER BY sum(Kommentar) LIMIT 1
 
Zuletzt bearbeitet:
martl: jup.

lararsc: nä, das geht nicht. SUM funzt nur auf numerische Felder, als wenn Zahlen drin stehen. Wie ich schon geschrieben habe, ist COUNT das Mittel der Wahl.
 
Zurück
Oben