title: Rewriting Not In Sub-Select as Join for Propel
body: <p>Given the following schema:</p>
  
  <pre><code>person:
    id: ~
  group:
    id: ~
  group_membership:
    person_id: ~
    group_id: ~
  </code></pre>
  
  <p>I am attempting to find members not within a certain group using Propel's Criteria, which the following SQL will do:</p>
  
  <pre><code>SELECT * FROM person
  WHERE id NOT IN (
    SELECT person_id FROM group_membership
    WHERE group_id = 1
  );
  </code></pre>
  
  <p>Unfortunately, Propel doesn't support sub-selects. It's possible to perform the sub-select first and pass it directly as an array, but I would rather do it in one call. I found <a href="http://snippets.symfony-project.org/snippet/75" rel="nofollow">this article</a>, which suggests using a custom criteria or converting it to a join.</p>
  
  <p>Is it possible to convert the above SQL to a single Join with no nested selects?</p>