[thelist] Stuck on SQL
Chris Anderson
Chris at activeide.com
Fri Jul 24 06:39:24 CDT 2009
> What I really want, however, is to get all contacts which do NOT have
> a tag where the tag name is:
>
> civicrm_tag.name LIKE "%Primary%" OR civicrm_tag.name LIKE "%Secondary%"
>
> I don't care if he has zero tags or if he has 6 tags. I just care that
> he has zero tags where the tag has "Primary" or "Secondary" somewhere
> in its name.
>
> I am not succeeding in figuring out how to do this with one SQL. :(
How about counting the number of tags, then using the HAVING clause to just select those with 0 tags:
SELECT civicrm_contact.id , COUNT(civicrm_entity_tag.tag_id)
FROM civicrm_contact
LEFT JOIN civicrm_entity_tag ON civicrm_entity_tag.contact_id =
civicrm_contact.id
LEFT JOIN civicrm_tag ON civicrm_tag.id = civicrm_entity_tag.tag_id
WHERE civicrm_tag.name LIKE "%Primary%" OR civicrm_tag.name LIKE "%Secondary%"
GROUP BY civicrm_contact.id
HAVING COUNT(civicrm_entity_tag.tag_id) = 0
Chris
More information about the thelist
mailing list