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

Проблем при конструирането на клауза where за включване на стойности null/0

Преместете teacher_students.teacher_id = 1 проверете от WHERE клауза към присъединяването ON клауза.

Когато условие, което се отнася до таблица в дясната страна на LEFT JOIN се поставя в клаузата WHERE, LEFT JOIN се отменя и действа като INNER JOIN .

SELECT count(teacher_students.student_id) AS rcount      <--- changed
     , questions.id 
FROM "questions"
  LEFT JOIN answers 
    ON answers.question_id = questions.id
  LEFT JOIN teacher_students 
    ON teacher_students.student_id = answers.student_id
    AND teacher_students.teacher_id = 1
WHERE questions.test_id = 1

GROUP BY questions.id 
ORDER BY questions.id



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. XPath1 в SQL/XML, броят на елементите се връща празен

  2. Пренареждане на записи на PostgreSQL с помощта на актуализация с подизбор

  3. Възникна грешка при инсталирането на pg (0.18.2) и Bundler не може да продължи

  4. Вътрешно присъединяване срещу правене на клауза where в

  5. Отказано е разрешение за връзка