Det er ikke nødvendigt at lave flere joinforbindelser. Hvis du skal matche alle tags, kan du bruge en IN
klausul med en underforespørgsel som denne:
select p.sku, p.name, p.path
from shop_products p
where p.sku in (
select pc.product_sku
from shop_products_categories pc
inner join shop_categories c on pc.category_id = c.id
where c.path in ('flowers', 'romance')
group by pc.product_sku
having count(distinct c.path) = 2
)
Bemærk, at du skal justere tallet 2, så det er antallet af unikke tags, du matcher på. Pas på, hvis dette er brugerindtastede data, og de indtaster det samme tag to gange.