sql >> Databáze >  >> RDS >> Mysql

Jak získat data ze 4 tabulek v 1 dotazu SQL?

S tímto dotazem získáte to, co chcete:

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

Použil jsem left join u subscribers protože pro daný course nemusí být nikdo . Předpokládám, že všechny ostatní tabulky obsahují data pro každý course , categorie a tutor . Pokud ne, můžete použít left join také, ale pak budete mít data s hodnotou null.



  1. Jak nahradit NULL jinou hodnotou v SQL Server – ISNULL()

  2. Jak nahradit zachycenou skupinu vyhodnoceným výrazem (přidání celočíselné hodnoty do skupiny zachycení)

  3. Získávání ORA-03115:Nepodporovaný datový typ sítě nebo chyba reprezentace při načítání pole varchar z anonymního pl/sql

  4. Problém se spuštěním Proc - Oracle PL/SQL