Mysql
 sql >> Database >  >> RDS >> Mysql

Come ottenere dati da 4 tabelle in 1 query sql?

Con questa query ottieni ciò che desideri:

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

Ho usato left join su subscribers perché potrebbe non esserci nessuno per un dato course . Presumo che tutte le altre tabelle contengano dati per ogni course , categorie e tutor . In caso contrario, puoi utilizzare left join anche ma poi avrai dati con null.