Hallo
Glaub das ist etwas komplizierter!
aber nur ein wenig.
users:
user_id|name|alter
fotos:
id|user_id|datum
Schließlich gibt es in SELFHTML Aktuell zwei Artikel zu JOINS, die ich Dir
als Lektüre empfehle:
Einführung in Joins
Fortgeschrittene Jointechniken
Ich will jetzt alle namen derjenigen haben, die mehr als 5 fotos haben.
und natürlich auch den Benutzernamen dazu:
Im ersten Schritt lassen wir uns alle Benutzer mit den zugehörigen id-Werten ihrer Bilder anzeigen:
SELECT
users.name,
fotos.id
FROM
users
INNER JOIN fotos
ON users.user_id = fotos.user_id
Nun zählen wir die Bilder, d.h. wieviele ids jedem Benutzer zugeordnet sind:
SELECT
users.name,
COUNT(fotos.id) AS Anzahl
FROM
users
INNER JOIN fotos
ON users.user_id = fotos.user_id
GROUP BY users.name
Aber: es könnte ja zwei Benutzer mit gleichem Namen geben:
SELECT
users.id,
users.name,
COUNT(fotos.id) AS Anzahl
FROM
users
INNER JOIN fotos
ON users.user_id = fotos.user_id
GROUP BY
users.id,
users.name
Nur die mit mehr als fünf Bildern, das erledigt die HAVING-Klausel, siehe
in SELFHTML aktuell Datensätze gruppieren mit SQL:
SELECT
users.id,
users.name,
COUNT(fotos.id) AS Anzahl
FROM
users
INNER JOIN fotos
ON users.user_id = fotos.user_id
GROUP BY
users.id,
users.name
HAVING COUNT(fotos.id) > 5
Wie du siehst eine ziemlich schwierige angelegenheit.
Wenn Du Dich damit eine Weile beschäftigst, findest Du heraus, dass das gar
nicht so schwierig ist.
Freundliche Grüße
Vinzenz