Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để lấy dữ liệu từ 4 bảng trong 1 truy vấn sql?

Với truy vấn này, bạn sẽ có được những gì bạn muốn:

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

Tôi đã sử dụng left join trên subscribers bởi vì có thể không có ai cho một course nhất định . Tôi giả định rằng tất cả các bảng khác đều có dữ liệu trên đó cho mọi course , categorietutor . Nếu không, bạn có thể sử dụng left join nhưng sau đó bạn sẽ có dữ liệu với 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. Mysqli ::commit &mysqli ::rollback hoạt động như thế nào?

  2. Làm cách nào để chèn giá trị vào cơ sở dữ liệu (mySql) bằng chương trình cpp?

  3. Ngăn người dùng chỉnh sửa cùng một bản ghi

  4. Chọn n giá trị lớn nhất từ ​​một bảng

  5. MySQL khóa trong lỗi khóa trùng lặp