title: Efficient SQL Query
body: <p>Note: These are not homework problems. I am studying dbms on my own, hence these
  homework-like questions.</p>
  
  <p>Two tables : </p>
  
  <pre><code>Teachers (teacher_id, teacher_name)
  Courses (teacher_id,course_id, course_name)
  </code></pre>
  
  <p>In order to select teacher names who are not teaching any courses, there are
  two queries I can think of : </p>
  
  <pre><code>mysql&gt; explain select teacher_name from teachers left join courses on (teachers.
  teacher_id = courses.teacher_id) where course_id is null;
  
  mysql&gt; explain select teacher_name from teachers where teacher_id not in (select
   teacher_id from courses);
  </code></pre>
  
  <p>Which one will be more efficient? Why?</p>