4 개의 테이블을 결합하고 싶습니다. 36 행을 반환하는 동안 4 행을 반환 할 것으로 기대합니다. 그것은 내가 기대하는 결과가 9 번 반복된다는 것을 의미합니다.JOIN을 사용할 때 예상보다 많은 행을 얻습니다.
$result=mysql_query("SELECT *
FROM exam
INNER JOIN studentexam ON exam.id = studentexam.examID
INNER JOIN question ON exam.id = question.examID
INNER JOIN answer ON exam.id = answer.examID
WHERE exam.id=$examID");
while($row=mysql_fetch_array($result)){
if($row['type']=='singleChoice'){
print $row['examID'].'*'.$row['studentID'].'*'.$row['questionID'].'<br>';
}
}
난 결과로 원하는 것입니다 99 * 922723627 * 25 - 99 * 922723627 * 26 - 99 * 922723627 * 27 - 99 * 922723628 * 25 - 하지만 이걸 9 번이나 해. 모든 순열을 반환합니다 (정확한 단어가 영어 인 경우). 3 가지 질문과 3 가지 후보자가있는 1 가지 시험이 있습니다. 첫 번째 응시자는 3 개의 질문에 답변했고 두 번째 후보자는 1 개를, 세 번째 후보자는 시험에 응하지 않았습니다. 1 * 3 * 3 * 4 = 36
JOIN을 여러 번 사용했지만 실제로는 혼란 스럽습니다. 뭐가 잘못 되었 니?!
studentID별로 그룹화를 시도하셨습니까? – Jim
@jim 아니요. 나는 그것이 무엇인지 알지 못합니다. – CodeLiker