Count und Joins über mehre Zeilen

N’abend.

Ist es möglich mit sich mehre Zeilen mit Mysql anzeigen zulassen und diese mit einem Count mitzuzählen?
Ich hab da jetzt eine Select und zwei Inner Joins drin. Sobald ich Count mit reinnehme, bekomme ich nur noch eine Zeile ausgegeben.

[PHP]SELECT
o.active,
o.level,
o.online,
o.read,
o.timespent,
o.connected,
o.fid,
t.size,
g.Name,
g.CategoryID
FROM overalllist as o
LEFT JOIN tents as t ON t.ID = o.fid
LEFT JOIN group as g ON g.ID = t.GroupID
WHERE o.userid = 45[/PHP]

Diese SQL gibt mir derzeit drei Zeilen aus. Kann man diese drei Zeilen irgendwie mitzählen?

Klar, du musst nur festlegen was Du zählen willst - also welche Spalte. Beispiel:

SELECT o.active, o.level, o.online, o.read, o.timespent, o.connected, o.fid, t.size, g.Name, g.CategoryID[COLOR="red"], COUNT(t.size) as anzahl_tents, COUNT(g.Name) as anzahl_group FROM overalllist as o LEFT JOIN tents as t ON t.ID = o.fid LEFT JOIN group as g ON g.ID = t.GroupID WHERE o.userid = 45 [COLOR="red"]GROUP BY o.fid

Vielen dank, das funktioniert soweit. Kann ich die Counts noch irgendwie zusammenzählen das ich zum Schluss nur noch einen Wert mit dem Gesamtergebnis der Counts habe? Habe es schon mit SUM versucht, aber das geht nicht.

SELECT o.active, o.level, o.online, o.read, o.timespent, o.connected, o.fid, t.size, g.Name, g.CategoryID[COLOR="red"], COUNT(t.size) + COUNT(g.Name) as anzahl FROM overalllist as o LEFT JOIN tents as t ON t.ID = o.fid LEFT JOIN group as g ON g.ID = t.GroupID WHERE o.userid = 45 GROUP BY o.fid

sollte gehen.

Jop, funktioniert. Danke nochmals. :slight_smile:

Wichtig ist eben, dass diese Aggregatfunktionen ein GROUP BY-Statement voraussetzen.