Select rows that match several conditions
<p>I have a table <code>pupil_teachers</code> like so</p>

<pre><code>+------+----------+------------+
| id   | pupil_id | teacher_id |
+------+----------+------------+
| 1    | 100      | 200        | 
| 2    | 101      | 200        |  
| 3    | 102      | 200        |
| 4    | 102      | 201        |
| 5    | 101      | 201        |
| 6    | 101      | 202        | 
| 7    | 103      | 200        | 
+------+----------+------------+
</code></pre>

<p>The query would be to retrieve all teachers that pupils 100, 101 and 102 have in common. So in this case it would only be teacher with id 200. </p>

<p>Pupil 103 also has teacher with id 200, but is not part of query, I only want to query pupils 100, 101 and 102.</p>

<p>So it would start with:</p>

<pre><code>SELECT teacher_id
FROM pupil_teachers
WHERE 
</code></pre>

<p>I really don't know where to go next. Obviously the following is not correct</p>

<pre><code>SELECT teacher_id
FROM pupil_teachers
WHERE pupil_id IN (100, 101, 102)
</code></pre>