Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um sistema de filtros por caracteristicas, porém a única maneira que consegui fazer funcionar foi usando sub consultas porém fica uma lerdeza absurda o que inviabiliza o uso dessa consulta. Tentei com inner join porém não consegui fazer dar o resultado certo.
SELECT DISTINCT produto.idprod, produto.nome FROM sessoe INNER JOIN ((produto INNER JOIN categorias ON produto.idsessao = categorias.idcategorias or produto.idsessao2 = categorias.idcategorias or produto.idsessao3 = categorias.idcategorias or produto.idsessao4 = categorias.idcategorias) inner join produto_caracteristica on produto_caracteristica.produto = produto.idprod) ON sessoe.id = categorias.idsessao WHERE produto.ver = 's' AND produto_caracteristica.produto in (select produto_caracteristica.produto from produto_caracteristica where produto_caracteristica.caracteristica =10118) AND produto_caracteristica.produto in (select produto_caracteristica.produto from produto_caracteristica where produto_caracteristica.caracteristica =10145) and (produto.idsessao = 94 or produto.idsessao2 = 94 or produto.idsessao3 = 94) and produto.fabricante = 57 group by produto_caracteristica.produto order by produto.ordem, produto.visualizacoes desc
Na consulta eu procuro os produtos do fabricante 57 que estão na sessao 94 e tem as caracteristicas 10118 e 10145 e
Funciona 100% porém fica muito lento eu tento usar inner join, funciona se eu selecionar apenas uma característica porém se eu selecionar mais de uma ele não me mostra nada, o que estou fazendo de errado? segue o exemplo do inner join que estou usando:
SELECT DISTINCT produto.idprod, produto.nome
from sessoe INNER JOIN
( categorias inner join (produto inner join produto_caracteristica on produto_caracteristica.produto = produto.idprod)
on produto.idsessao = categorias.idcategorias or produto.idsessao2 = categorias.idcategorias or produto.idsessao3 = categorias.idcategorias or produto.idsessao4 = categorias.idcategorias)
ON sessoe.id = categorias.idsessao
where produto_caracteristica.caracteristica = 10145 and produto_caracteristica.caracteristica = 10118 and produto.fabricante = 57 group by produto_caracteristica.produto order by produto.ordem, produto.visualizacoes desc
Carregando comentários...