jika Anda menginginkan item dengan salah satu dari dua tag tersebut, maka:
select distinct item_id, item_name
from items_tags
where tag_name in ('yellow', 'fruit');
jika Anda ingin item memiliki kedua tag, maka:
select item_id, item_name
from items_tags
where tag_name in ('yellow', 'fruit')
group by item_id, item_name
having count(*) = 2;
berdasarkan komentar Anda
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';
Kueri ini memberikan id dan item dari tabel item. Ini memberikan item yang memiliki tag kuning dan buah. dan item hanya dengan tag merah.
jika Anda ingin mendapatkan item dengan dua tag dan hanya dua tag, gunakan ketentuan berikut dalam memiliki klausa
(group_concat(c.tag) like '%yellow%'
and group_concat(c.tag) like '%fruit%'
and count(*) = 2)