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

Mysql tham gia bốn bảng và hiển thị giá trị NULL

Phần sau sẽ trả về tất cả học sinh có điểm từ bài kiểm tra 32 nếu chúng tồn tại.

SELECT scores.result,students.id,exam.name, exam.id
FROM exam
INNER JOIN scores ON exam.id = scores.exam_id
RIGHT OUTER JOIN students ON scores.user_id = students.user_id
WHERE exam.id = 32

Mệnh đề select của bạn không sử dụng bất kỳ thứ gì từ student_subjects hoặc các hàm tổng hợp, vì vậy tôi không chắc việc nối với nó dùng để làm gì? Có lẽ bạn có thể bắt đầu với những điều trên và xây dựng từ đó.

Chỉnh sửa:Chiến lược mới dựa trên nhận xét đầu tiên của tôi. Hãy thử và xác định vị trí của tất cả học sinh, sau đó tìm điểm tồn tại, null nếu không có.

SELECT scores.result,students.id,exam.name, exam.id
FROM exam
INNER JOIN students_subjects ON students_subjects.group_id = exam.group_id
INNER JOIN students ON students_subjects.user_id = students.user_id
LEFT OUTER JOIN scores ON scores.user_id = students.user_id
  AND scores.exam_id = exam.id
WHERE exam.id = 32


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để xem chuỗi lệnh khi sử dụng các tham số MySqlCommand?

  2. Sử dụng SQLAlchemy ORM cho id không phải khóa chính, duy nhất, tự động tăng dần

  3. Cây đặt hàng trước MySql đã sửa đổi để tạo url

  4. Cách tạo bộ nhớ cache mysql theo cách thủ công

  5. Quyền để tạo trình kích hoạt trong mysql