Manera eficiente de seleccionar registros que faltan en otra tabla

Tengo 3 mesas. A continuación se muestra la estructura:

student (id int, name varchar(20))course (course_id int, subject varchar(10))student_course (st_id int, course_id int) -> contiene el nombre de los estudiantes que se inscribieron en un curso

Ahora, quiero escribir una consulta para averiguar los estudiantes que no se inscribieron en ningún curso. Como pude averiguar, hay varias formas de obtener esta información. ¿Podría por favor hacerme saber cuál de estos es el más eficiente y también por qué? Además, si pudiera haber alguna otra forma mejor de ejecutar el mismo, por favor hágamelo saber.

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)

¡¡Gracias por adelantado!!

Respuestas a la pregunta(4)

Su respuesta a la pregunta