sql >> Database >  >> RDS >> Mysql

Hoe krijg ik gegevens uit 4 tabellen in 1 sql-query?

Met deze vraag krijg je wat je wilt:

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

Ik gebruikte left join op subscribers omdat er misschien niemand is voor een bepaalde course . Ik neem aan dat alle andere tabellen gegevens bevatten voor elke course , categorie en tutor . Zo niet, dan kun je left join . gebruiken ook, maar dan heb je gegevens met null.



  1. Hoe de grootte van indexen in mysql te achterhalen (inclusief primaire sleutels)

  2. Selecteer niet-lege kolommen met SQL Server

  3. Microsoft Access is NIET dood en VBA ook niet

  4. Door Oracle ondersteunde versiesmatrix