Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como obter dados de 4 tabelas em 1 consulta sql?


Com esta consulta, você obtém o que deseja:
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

Eu usei left join em subscribers porque pode não haver ninguém para um determinado course . Estou assumindo que todas as outras tabelas têm dados para cada course , categorie e tutor . Caso contrário, você pode usar left join também, mas então você terá dados com null.