om du vill ha objektet med någon av de två taggen gör du så här:
select distinct item_id, item_name
from items_tags
where tag_name in ('yellow', 'fruit');
om du vill att objektet ska ha både taggar:
select item_id, item_name
from items_tags
where tag_name in ('yellow', 'fruit')
group by item_id, item_name
having count(*) = 2;
baserat på din kommentar
select a.id, a.item
from items a, items_tags b, tags c
where a.id = b.item_id
and b.tag_id = c.id
group by id, item
having (group_concat(c.tag) like '%yellow%'
and group_concat(c.tag) like '%fruit%')
or group_concat(c.tag) = 'red';
Denna fråga ger id och objekt från objekttabellen. Det ger föremål som har både gult och fruktmärke. och föremålen med endast röd tagg.
om du vill få objekt med två taggar och bara två taggar använd följande villkor i att ha klausul
(group_concat(c.tag) like '%yellow%'
and group_concat(c.tag) like '%fruit%'
and count(*) = 2)