Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak uzyskać dane z 4 tabel w 1 kwerendzie sql?

Dzięki temu zapytaniu otrzymasz to, czego chcesz:

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

Użyłem left join na subscribers ponieważ może nie być nikogo na dany course . Zakładam, że wszystkie inne tabele zawierają dane dla każdego course , categorie i tutor . Jeśli nie, możesz użyć left join również, ale wtedy będziesz mieć dane z wartością null.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rekurencyjne zapytanie MySQL z relacyjnym innoDB

  2. Baza danych kolumn Laravel Sum Eloquent

  3. Problem w PHP podczas łączenia tabel zawierających kolumny o tej samej nazwie

  4. Instrukcje SQL Błąd w kodzie Java przy użyciu Intellij i DB Navigator

  5. Rodzaj trójkąta w MySQL