Skuteczny sposób wyboru brakujących rekordów w innej tabeli

Mam 3 stoły. Poniżej znajduje się struktura:

student (id int, name varchar(20))course (course_id int, subject varchar(10))student_course (st_id int, course_id int) -> zawiera imię i nazwisko uczniów, którzy zapisali się na kurs

Teraz chcę napisać zapytanie, aby dowiedzieć się, którzy uczniowie nie zapisali się na żaden kurs. Jak mogłem się domyślić, istnieje wiele sposobów pobierania tych informacji. Czy mógłbyś mi powiedzieć, który z nich jest najbardziej wydajny, a także dlaczego. Ponadto, jeśli może istnieć jakikolwiek inny lepszy sposób wykonywania tego samego, daj mi znać.

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)

Z góry dziękuję!!

questionAnswers(4)

yourAnswerToTheQuestion