left join
s đang đưa vào các bảng có nhiều kết quả phù hợp với một id nhất định. Cách nhanh chóng và dễ dàng để sửa số lượng là sử dụng count(distinct)
thay vì 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;
Một cách tiếp cận thay thế là tổng hợp các bảng trước khi kết hợp, thực hiện đếm trong truy vấn con.