Busca em várias categorias
Fala galera,
Tenho a seguinte questão: tenho um site com vários produtos, e cada produto pode ter mais de uma categoria.
O Cadastro está OK, mas agora o cliente me solicitou uma espécie de busca avançada:
Segue um modelo e seus respectivos IDs (formato: id grupo-id categoria):
>
POR PRODUTO
Mochilas (1-1)
Pastas & Maletas (1-2)
Cases Tablet & Notebook (1-3)
Necessaires (1-4)
Termomoldados (1-5)
Promoções (1-6)
POR AÇÃO
Para Feiras e Congressos (2-7)
Para Brinde em Ação Promo (2-8)
Para Brinde a Colaboradores (2-9)
Gostaria que se a pessoa selecionasse Mochilas e Pastas, fosse uma consulta OR, e entre os grupos (Produto e ação), uma consulta AND.
Tentei da seguinte maneira (minha função PHP já faz a separação automaticamente de categorias e grupos para montar a consulta):
SELECT p.*
FROM sistema_produto p, sistema_produto_secao ps
WHERE proAtivo = 'S'
AND proExcluido = 'N'
AND p.proId = ps.proId
AND / Grupo 01 / (ps.secId = 1 OR ps.secId = 2)
AND / Grupo 02 / (ps.secId = 7)
GROUP BY p.proId
Se eu só seleciono categorias em um grupo, funciona legal. Mas quando adiciono mais um grupo a busca (no caso do exemplo, a busca pelo ID 7), ele não retorna. Já conferi, e o produto está cadastrado corretamente: o mesmo produto está nas 3 categorias através da tabela intermediária sistema_produto_secao.
Suponho que não funcione pois só existe um campo secId, obviamente, e ele só tem um valor.
Mas, não me vem a cabeça como posso fazer.
Alguma luz?
Discussão (36)
Carregando comentários...