Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie bekomme ich Daten aus 4 Tabellen in 1 SQL-Abfrage?

Mit dieser Abfrage erhalten Sie, was Sie wollen:

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

Ich habe left join verwendet auf subscribers weil es für einen bestimmten course möglicherweise niemanden gibt . Ich gehe davon aus, dass alle anderen Tabellen Daten für jeden course enthalten , categorie und tutor . Wenn nicht, können Sie left join verwenden auch, aber dann haben Sie Daten mit null.