उप-चयनों का उपयोग करके आप यह कर सकते हैं:
SELECT co.*,
(SELECT COUNT(*) FROM modules mod WHERE mod.course_id=co.id) AS moduleCount,
(SELECT COUNT(*) FROM videos vid WHERE vid.course_id=co.id) AS vidCount
FROM courses AS co
ORDER BY co.id DESC
लेकिन सावधान रहें क्योंकि जब पाठ्यक्रमों में कई पंक्तियाँ हों तो यह एक महंगी क्वेरी है।
संपादित करें: यदि आपकी तालिकाएँ काफी बड़ी हैं, तो निम्न क्वेरी को बेहतर प्रदर्शन करना चाहिए (पढ़ने और समझने में अधिक जटिल होने के पक्ष में)।
SELECT co.*,
COALESCE(mod.moduleCount,0) AS moduleCount,
COALESCE(vid.vidCount,0) AS vidCount
FROM courses AS co
LEFT JOIN (
SELECT COUNT(*) AS moduleCount, course_id AS courseId
FROM modules
GROUP BY course_id
) AS mod
ON mod.courseId = co.id
LEFT JOIN (
SELECT COUNT(*) AS vidCount, course_id AS courseId
FROM videos
GROUP BY course_id
) AS vid
ON vid.courseId = co.id
ORDER BY co.id DESC