Datenbank-Inhalt nachträglich sotieren

h4dhunTer

Erfahrenes Mitglied
Hallo,
ich habe zwei Tabellen: user und kommentar. Nun wird in user halt die Benutzerinformationen gespeichert und in kommentar die Kommentare die er schreibt.

Jetzt möchte ich eine Top 10 Liste erstellen. Doch wie bekomme ich die besten 10 Benutzer nach oben?

Nun zählen würde ich die Kommentare damit:
PHP:
<?php
$sql = mysql_query("SELECT * FROM `kommentar` WHERE ?");
$number = mysql_num_rows($sql);
?>

Doch wie bekomme ich jetzt die besten schreiber?
 
So z.B.:

PHP:
select count(k.*) as 'anzahl', b.vorname from kommentare k
inner join benutzer b on b.id = k.benutzer
group by k.benutzer
order by anzahl


So kriegst alle. Musst halt noch an deine richtigen Spaltennamen anpassen und ein Limi einbauen
 
SQL:
SELECT
    `k`.*, COUNT(`k`.`id`) AS `kommentare`, `u`.`name`
FROM
    `kommentare` AS `k`
LEFT JOIN
    `user` AS `u`
    ON `u`.`id` = `k`.`user_id`
GROUP BY
    `k`.`user_id`
ORDER BY
    `kommentare` DESC
LIMIT 10

Nachtrag
Mist, zu langsam :D
 
Zurück