title: SQL join clause to return rows with more than one occurrence without grouping
body: <p>I want to extract the records which appear more than once from a JOIN query, but without them getting grouped.</p>
  
  <p>Example tables:</p>
  
  <pre><code>tbl_names
  id    Name
  1     Mark
  2     John
  3     Jane
  4     Paul
  
  tbl_locations
  id    Location
  1     Berlin
  2     Frankfurt
  2     Stockholm
  3     Helsinki
  3     Madrid
  3     London
  4     Paris
  </code></pre>
  
  <p>ID is a foreign key.</p>
  
  <p>Now, the result of the query would be:</p>
  
  <pre><code>id     Name    Location
  2      John    Frankfurt
  2      John    Stockholm
  3      Jane    Helsinki
  3      Jane    Madrid
  3      Jane    London
  </code></pre>
  
  <p>i.e. all JOIN records in which the record in the first table appears more than once in the JOIN clause result.</p>
  
  <p>I can get it grouped of course:</p>
  
  <pre><code>SELECT tbl_names.id, tbl_names.Name, tbl_locations.Location FROM tbl_names
   INNER JOIN tbl_locations ON (tbl_names.id = tbl_locations.id)
   GROUP BY tbl_names.id
   HAVING COUNT(tbl_names.id) &gt; 1
  </code></pre>
  
  <p>What I want is to have them not grouped at all. I have tried with a sub-clause and <code>NOT IN</code> but it is extremely slow and doesn't give me the results I want.</p>
  
  <p>Any enlightenment will be welcome.</p>