1
から3つのテーブルからデータを取得し、私はそれらのクイズを受けていない学生や、既にクイズを取った者(個別のスクリプト)をフェッチしたいPHP MySQLの - 私は彼らの列を持つ3つのテーブルを持っているデータベース
Table quiz
Column id, title, created_at, start_on, end_on, class_name, user_faculty
Table studentclass
Column id, class_name, user_faculty, user_student
Table score
Column id, grade, user_student, status, quiz_id
quiz.class_name = studentclass.class_name、quiz.user_faculty = sctudentclass.user_faculty、studentclass.user_student = score.user_studentとquiz.id = score.quiz_id
score.status = 'F' //このよう
どこuser_studentが既にクイズに参加していることを定義しました
次のとおりです。
SELECT quiz.id, quiz.title, quiz.start_on, quiz.end_on, quiz.class_name,
quiz.user_faculty, studentclass.user_student, score.status
FROM quiz
INNER JOIN studentclass
ON quiz.class_name = studentclass.class_name
AND start_on >= now()
AND end_on <= now()
LEFT JOIN score
ON quiz.id = score.quiz_id
WHERE score.status IS NULL
user_studentが既にクイズを取った場合、彼はすでにuser_student、quiz_idとステータスとスコアテーブル内の行を持っているので、その後、彼はもうクイズを参照することができません。しかし、クイズを取っていない他のuser_studentはクイズを見ることができます。
私はあなたが把握したいものを得ることを望みます。
私はstudentclassをすべて与えていますが、私はQUIZをフェッチしたいと思います。class_nameとuser_studentを比較するにはSTUDENTCLASSが必要です – Maki