select SQL_NO_CACHE DISTINCT a.job_id FROM tbl_job_tag a join tbl_job_tag b on (a.job_id = b.job_id) where a.tag_id IN ('jobstate_accepted', 'jobstate_appointment', 'jobstate_inspected', 'jobstate_contacting', 'jobstate_typingoffice', 'jobstate_quote', 'jobstate_typingpool', 'jobstate_hold', 'jobstate_delay') and b.tag_id not in ('jobstate_cancelled', 'jobstate_draft', 'jobstate_logged', 'jobstate_queried', 'jobstate_complete'); ----------------- SELECT DISTINCT a.job_id FROM tbl_job_tag a WHERE a.tag IN ('jobstate_accepted', 'jobstate_appointment', 'jobstate_inspected', 'jobstate_contacting', 'jobstate_typingoffice', 'jobstate_quote', 'jobstate_typingpool', 'jobstate_hold', 'jobstate_delay') and a.job_id not in( select job_id from tbl_job_tag b where b.tag in ('jobstate_cancelled', 'jobstate_draft', 'jobstate_logged', 'jobstate_queried', 'jobstate_complete') ); job_id tag tag_id ------------------------------------------------------- 148499 jobstate_draft 1245782 148499 jobstate_quote 1245781 148499 valnet 1245780 148250 jobstate_accepted 1245779 144422 delivery_pending 1245778 146413 delivery_pending 1245777 129211 jobstate_delay 1245776 145575 jobstate_complete 1245775 143685 jobstate_complete 1245774 147312 jobstate_complete 1245773 148498 jobstate_logged 1245772 148498 refactorTheCBADeliveryMethodSoon 1245771 145613 jobstate_inspected 1245770 148256 jobstate_delay 1245769 148497 jobstate_logged 1245768 # Number of records - 123591 job_id us_id ---------------------------------- 148499 26825 + 20 other fields