Tenho três tabelas relacionadas:
Produto: id - titulo
Tags: id - nome
TagsProdutos: id - tag_id - produto_id
Tenho que buscar um número dinâmico de tags nos produtos relacionados e que meu banco me retorne os produtos que possuem as tags combinadas. Exemplo:
Produto 1: mamãe - infantil - aniversários
Produto 2: mamãe - adulto - festas
Produto 3: mamãe - infantil - outros
Se buscar pelas tags 'mamãe' e 'infantil', ele me retorne os produtos 1 e 3. Atualmente tenho uma consulta que está me retornando o produto 2 também, pois ele tem 'mamãe' como tag.
Podem me ajudar? Minha consulta atual:
SELECT Produto.* FROM tags_produtos AS TagsProduto LEFT JOIN produtos AS Produto ON (Produto.id = TagsProduto.produto_id) WHERE Produto.publicado = 1 AND Produto.titulo LIKE '%%' OR ((TagsProduto.tag_id = 730) AND (TagsProduto.tag_id = 731) AND (TagsProduto.tag_id = 735)) GROUP BY Produto.id ORDER BY Produto.id ASC