Với truy vấn này, bạn sẽ có được những gì bạn muốn:
select co.title as course,
ca.name as category,
t.name as tutor,
count(s.*) as total_subscribers
from courses co
inner join course_categories cc on c.id = cc.course_id
inner join categories ca on cc.category_id = ca.id
inner join tutors t on co.tutor_id = t.tutor_id
left join subscribers s on co.id = s.course_id
where co.title = 'Cat1'
group by co.title, ca.name, t.name
Tôi đã sử dụng left join
trên subscribers
bởi vì có thể không có ai cho một course
nhất định . Tôi giả định rằng tất cả các bảng khác đều có dữ liệu trên đó cho mọi course
, categorie
và tutor
. Nếu không, bạn có thể sử dụng left join
nhưng sau đó bạn sẽ có dữ liệu với null.