4つのテーブルに参加したいです。36行を返すのに対し、4行を返すことを期待しています。これは、期待される結果が 9 回繰り返されることを意味します。
$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 つの試験があります。1 番目の受験者は 3 つの質問に答え、2 番目の受験者は 1 問、3 番目の受験者は試験を受けませんでした。1*3*3*4 = 36
私は JOIN を何度も使用しましたが、これには本当に混乱しています。なにが問題ですか?!