Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да получа данни от 4 таблици в 1 sql заявка?

С тази заявка получавате това, което искате:

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

Използвах left join на subscribers защото може да няма никой за даден course . Предполагам, че всички други таблици имат данни за всеки course , categorie и tutor . Ако не, можете да използвате left join също, но тогава ще имате данни с нула.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Тригери и заключване на таблица в MySQL

  2. Чиста инсталация на VestaCP

  3. MySQL password() функция към PHP

  4. Синтаксис UNION в Cakephp

  5. Как да предам списък с идентификатори на съхранената процедура на MySQL?