Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Anzahl aus der verknüpften Tabelle

Ihr left join s bringen Tabellen ein, die mehrere Übereinstimmungen für eine bestimmte ID haben. Der schnelle und einfache Weg, Anzahlen zu korrigieren, ist die Verwendung von count(distinct) statt count() :

SELECT l.id, l.naam, beschrijving,
       count(distinct c.lijst_id) as aantal_cat, count(distinct wl.lijst_id) as aantal_lijst
FROM lijsten l
LEFT JOIN werknemerlijsten wl ON l.id = wl.lijst_id
LEFT JOIN categorieen c ON l.id = c.lijst_id
GROUP BY l.naam
ORDER BY naam;

Ein alternativer Ansatz besteht darin, die Tabellen vor dem Join zu aggregieren und die Zählungen in der Unterabfrage durchzuführen.