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

Mysql обединява четири таблици и показва NULL стойност

Следното трябва да върне всички студенти с оценки от изпит 32, ако има такива.

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

Вашата клауза за избор не използва нищо от students_subjects или агрегатни функции, така че не съм сигурен за какво беше присъединяването към нея? Може би можете да започнете с горното и да надграждате оттам.

Редактиране:Нова стратегия въз основа на първия ми коментар. Опитайте да намерите всички ученици, след което намерете резултати, които съществуват, нула, ако няма.

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. Опитвам се да стартирам mysql-client в Docker, но получавам отказан достъп за потребителска грешка

  2. Колко важни са ограничения като NOT NULL и FOREIGN KEY, ако винаги ще контролирам въвеждането на моята база данни с PHP?

  3. MySQL:Изберете няколко реда, съдържащи стойности от една колона

  4. Изберете MYSQL редове, но редове в колони и колона в редове

  5. Завършен Java проект, сега се създава jar или .exe файл (с база данни)