इस क्वेरी को फिर से लिखने का दूसरा तरीका।
प्रत्येक तालिका में अलग-अलग समूह बनाएं और गिनें, फिर शामिल हों:
SELECT a.id,
COALESCE(b.t1, 0) AS t1,
COALESCE(c.t2, 0) AS t2,
COALESCE(d.t3, 0) AS t3
FROM
entity a
LEFT JOIN
( SELECT ei,
COUNT(*) AS t1
FROM table1
GROUP BY ei
) AS b
ON a.id = b.ei
LEFT JOIN
( SELECT ei,
COUNT(*) AS t2
FROM table2
GROUP BY ei
) AS c
ON a.id = c.ei
LEFT JOIN
( SELECT ei,
COUNT(*) AS t3
FROM table3
GROUP BY ei
) AS d
ON a.id = d.ei
;
आपको (ei)
. पर एक इंडेक्स जरूर जोड़ना चाहिए 3 टेबलों में से प्रत्येक पर, यदि आपके पास एक नहीं है।