Mysql-Abfrage "verschachteln" und geordnet ausgeben?

Caralynn

Mitglied
Hallo,

ich grüble gerade über eine Abfrage nach, die folgendes bewerkstelligen soll (es geht um eine Art Statistik)

Ich habe eine Tabelle, in der Daten zu Tieren gespeichert werden. Jedes Tier hat eine ID. Jedes Tier hat einen Vater, der ebenfalls in der Tabelle steht. Jetzt möchte ich die Tiere, die den meisten Nachwuchs haben, absteigend sortiert ausgeben.

Beispiel:
ID 1 ist der Vater von ID 2, ID 3, ID 4.
ID 2 ist der Vater von ID 6, ID 7.
ID 3 ist der Vater von ID 8, ID 9, ID 10, ID 11.
ID 5 hat keinen Nachwuchs

Ausgabe:
Anzahl | Tierid
4 | 3
3 | 1
2 | 2
0 | 5

Wie muss der Query sinnvollerweise lauten? Verschachteln mit while ist nicht so ideal, habe ich den Eindruck - da werden die Tiere anhand des ersten Queries ausgegeben.
Oder ist das gar nicht möglich? :(

LG,
Cara
 
Versuchs mal mit
Code:
SELECT
    VaterID,
    COUNT(*) AS Anzahl
FROM Viecher 
GROUP BY VaterID
ORDER BY Anzahl
Mamphil
 
Zurück