sql >> Base de Datos >  >> RDS >> Mysql

Recuento de SQL de la tabla unida

Tu left join s están trayendo tablas que tienen múltiples coincidencias para una identificación dada. La forma rápida y fácil de corregir los recuentos es usar count(distinct) en lugar de 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;

Un enfoque alternativo es agregar las tablas antes de la unión, haciendo los conteos en la subconsulta.