sql >> Databasteknik >  >> RDS >> Mysql

Hur får man data från 4 tabeller i 1 sql-fråga?

Med denna fråga får du vad du vill ha:

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

Jag använde left joinsubscribers eftersom det kanske inte finns någon för en given course . Jag antar att alla andra tabeller har data för varje course , categorie och tutor . Om inte kan du använda left join också men då har du data med null.



  1. Hämta antalet rader med en GROUP BY-fråga

  2. Hur matchar jag två värden från 1 kolumn i MYSQL

  3. Analysera en separat PHP-array i Javascript

  4. SKAPA BORD INNE PROCEDUR