Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Contagem SQL da tabela unida


Sua left join s estão trazendo tabelas que têm várias correspondências para um determinado id. A maneira rápida e fácil de corrigir contagens é usar count(distinct) em vez 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;

Uma abordagem alternativa é agregar as tabelas antes da junção, fazendo as contagens na subconsulta.