Maneira eficiente de selecionar registros ausentes em outra tabela

Eu tenho 3 mesas. Abaixo está a estrutura:

student (id int, name varchar(20))course (course_id int, subject varchar(10))student_course (st_id int, course_id int) -> contém o nome dos alunos que se matricularam em um curso

Agora, quero escrever uma consulta para descobrir alunos que não se matricularam em nenhum curso. Como eu poderia descobrir, existem várias maneiras de buscar essas informações. Você poderia, por favor, me avisar qual destes é o mais eficiente e também por quê. Além disso, se poderia haver qualquer outra maneira melhor de executar o mesmo, por favor me avise.

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)

Desde já, obrigado!!

questionAnswers(4)

yourAnswerToTheQuestion