title: Keep row in Table 1 if all values exist in Table 2
body: <p>I am having some trouble constructing this sql query.</p>
  
  <p>I have one table with Canadian and American cities like this:</p>
  
  <pre><code>+-------------+------------------+
  |start        |finish            |
  +-------------+------------------+
  |      Calgary|         Vancouver|
  |     Edmonton|           Toronto|
  |     Montreal|          New York|
  |      Chicago|          St Louis|
  |        Miami|          Winnipeg|
  +-------------+------------------+
  </code></pre>
  
  <p>And I have another table with only Canadian cities</p>
  
  <pre><code>+-------------+
  |cities       |
  +-------------+
  |      Calgary|
  |     Edmonton|
  |     Montreal|
  |    Vancouver|
  |      Toronto|
  |     Winnipeg|
  +-------------+
  </code></pre>
  
  <p>And I would like to filter the first table to only keep rows where BOTH <code>start</code> and <code>finish</code> exist in the <code>cities</code> table, like so:</p>
  
  <p>SAMPLE OUTPUT:</p>
  
  <pre><code>+-------------+------------------+
  |start        |finish            |
  +-------------+------------------+
  |      Calgary|         Vancouver|
  |     Edmonton|           Toronto|
  +-------------+------------------+
  </code></pre>
  
  <p>My initial thought was this:</p>
  
  <pre><code>SELECT *
  FROM start_finish s, cities c
  WHERE c.cities = s.start and c.cities = s.finish
  </code></pre>
  
  <p>But I realize after some trial and error that that would only return values if start and finish are the same.</p>
  
  <pre><code>+-------------+------------------+
  |start        |finish            |
  +-------------+------------------+
  |      Calgary|           Calgary|
  +-------------+------------------+
  </code></pre>
  
  <p>Any help would be much appreciated!</p>