これまでのところ、これを理解できません。これらのテーブルがあります。
- 学生- 列: ID、名前
- スタッド クラス- 列: 学生 ID、クラス ID
- クラス- 列: id、courses_id
- コース- 列: ID、名前
std_classテーブルに一致する行がない学生、または特定のコースのクラスに属していない学生 (特定のコースはパラメーターです) を選択する必要があります。
例: クラスを持っていない生徒、またはクラスに含まれているが、のクラスではない生徒を選択しますcourse.id = 2
。
これまでにこれを行いましたが、機能しません。クエリは行を返しません。ちょっとややこしいのはわかっていますが、この場合の JOINS の使い方がわかりません。
SELECT students.id, students.name
FROM students, stud_class, class
WHERE ( NOT (students.id = stud_class.students_id) )
OR ( (students.id=stud_class.students.id) AND
(stud_class.class_id=class.id) AND
( NOT (class.course_id=2) )
);