다음과 같은 sql 쿼리를 사용하면 테스트에서 만든 3 학년 학생을 반환합니다.
학생 1이 시험에서 0을 만들었 기 때문에 제 질문 결과는 두 학생의 성적 만 반환합니다. 어떻게 결과에 0을 포함시킬 수 있습니까?SQL에서 count 함수를 사용하여 0을 반환 할 수있는 방법
select u.uno, u.fname, u.lname, count(q.qno) as Test1 from ((users u
LEFT OUTER JOIN userresponse ur on ur.uno = u.uno) left outer join
question q on q.correctanswer = ur.response and q.qno = ur.qno and
q.eno = ur.eno) where q.eno = '1' group by u.uno, u.fname, u.lname
ur.eno이 시험 1, 다음 u.uno 그냥 테이블을 조인 = 사용자가 바로 ur.uno를 가지고 어떤 질문 번호와 시험 번호 가입하고 q.corectanswer = ur.response 검사를 질문.
어떤 데이터베이스가 있습니까? 이것은 ANSI-89 JOIN 구문 (쿼리)을 사용하지 않는 이유입니다. OUTER JOIN 지원은 없지만, subselect는 동등한 것이지만 상관 관계가 낮은 하위 쿼리를 효과적으로 사용합니다. –
@OMGPonies - 대다수의 데이터베이스에서 더 이상 사용되지 않는 외부 조인 기능이 있지만 (대개 '+'또는 '*'로 비교를 장식하는 것을 기본으로합니다) ANSI 조인으로 이동하는 것이 훨씬 낫다는 것에 동의합니다. –
@Damien_The_Unbeliever : 예, 있습니다. 그렇지만 벤더에 따라 다르다. [SQL Server] (http://stackoverflow.com/questions/1428144/sql-what-does-mean), [Oracle] (http://stackoverflow.com/questions/2425960/oracle-old-joins-a-) 변환을위한 도구 - 스크립트) –