私は3つのテーブルを持っています。以下は構造です。
student
(id int, name varchar(20)
)course
(course_id int, subject varchar(10)
)student_course
(st_id int, course_id int
) -> コースに登録した学生の名前を含む
ここで、どのコースにも登録していない学生を見つけるためのクエリを書きたいと思います。私が理解できるように、この情報を取得するには複数の方法があります。これらのうちどれが最も効率的か、またその理由を教えてください。また、同じことを実行するための他のより良い方法があれば、私に知らせてください。
db2 => select distinct name from student inner join student_course on id not in (select st_id from student_course)
db2 => select name from student minus (select name from student inner join student_course on id=st_id)
db2 => select name from student where id not in (select st_id from student_course)
前もって感謝します!!