Skip to content

Instantly share code, notes, and snippets.

@fabjan
Forked from smiler/gist:1082131
Created July 14, 2011 10:48
Show Gist options
  • Save fabjan/1082254 to your computer and use it in GitHub Desktop.
Save fabjan/1082254 to your computer and use it in GitHub Desktop.
-- Model at http://i.imgur.com/kuxy2.png
-- Find all channels that have tags 'tag 1' and 'tag 2'
select c.channel
from channels c
where c.id in (select ct.channelid
from channel_tags ct
join tags t on ct.tagid = t.id
where t.tag = 'tag 1')
and c.id in (select ct.channelid
from channel_tags ct
join tags t on ct.tagid = t.id
where t.tag = 'tag 2')
select c.channel
from channels c
join channel_tags ct on c.id = ct.channelid
join tags t on t.id = ct.tagid
where t.tag in ('tag 1', 'tag 2')
group by c.channel,
ct.channelid
having count(ct.channelid) = 2
select c.channel
from channels c, channel_tags ct, tags t
where ct.tagid = t.id and ct.channelid = c.id
and (t.tag in ('tag 1', 'tag_2'))
group by c.id
having count(c.id) = 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment