yo,
Hat jemand die Lösung / Ansatz, wie ich dazu komme?
grundsätzlich gibt es eine regel bei gruppierungen, die man immer einhalten sollte. zeige nur die spalten in einer gruppierung an, über die du auch gruppierst hast oder über die du eine aggregat-funktion einsetzt. mysql geht da einen anderen weg, dennoch würde ich dir raten, ihn einzuhalten.
außerdem hast du die join bedingung der drei tabellen vergessen. das passiert immer dann leicht, wenn man implizite joins verwendet. ich schlage dir vor, IMMER die explizite schreibeweise zu benutzen.
des weiteren ist mir noch nicht klar, warum du die datumsspalte in den count rein nimmst.
das alles umgesetzt auf deine abfrage bedeutet:
SELECT k.id kunden_id
k.name kunden_name,
u.id user_id,
COUNT(*) anzahl_besuche
FROM besuche b
INNER JOIN user u ON u.id = b.user_id
INNER JOIN kunden k ON k.id = b.kunden_id
GROUP BY u.id, k.id, k.name
;
Ilja