आपका left join
s उन तालिकाओं में ला रहे हैं जिनमें किसी दिए गए आईडी के लिए एकाधिक मिलान हैं। गणनाओं को ठीक करने का त्वरित और आसान तरीका count(distinct)
. का उपयोग करना है इसके बजाय 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;
एक वैकल्पिक तरीका यह है कि शामिल होने से पहले तालिकाओं को एकत्रित किया जाए, सबक्वेरी में गिनती की जाए।