e 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.
Ai depende do objetivo da aplicação/consulta. dependendo do ponto de vista trazer a linha 2 tmb nao esta errado....
Mas pra trazer só a linha 1 e 3 teriamos
sendo mamae = 1
infantil = 2
adulto = 3
festa = 4
aniversario = 5
outros = 6
select Id_produto from tag_produtos where tag_id in (1,2) group by id_produto having count(*) = 2
having count(*) = 2 pq 2 é a quantidade de tags que ele tem que atender especificamente.