• Cheers for that Mike.  I'm coming from an Oracle background and in older editions OUTER JOIN=Full Table Scan.

    I spent a bit more time looking into EXISTS after my post, and see what you mean.  When you code EXISTS rather than IN the first time it hits success it breaks the analysis loop.  This will be quicker if you are bringing back a huge number of rows from the subquery.

    HOWEVER, by the same rational NOT EXISTS should not be quicker than NOT IN AS it would have to scan the entire result set to ensure a single occurence isn't present.  Seems to follow...