Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

estudiomantovani

Leitura de tabela com IN

Recommended Posts

Bom dia Pessoal, estou precisando de uma ajuda em uma leitura em IN, vejam só.

 

É uma lista de produtos, quando listados, mostra os produtos que estão com desconto, a sequencia de leitura é a seguinte:

 

1) Lista todos os produtos (produtos)

2) Lista todos os tamanhos desses produtos (tamanhos)

3) Lista os preços dos produtos para cada tamanho (precos)

 

O que eu fiz, primeiro listei todos os produtos

SELECT * FROM produtos WHERE id_categoria = idcateg AND status = 1

 

Depois peguei todos os produtos que fazem parte do desconto, esses produtos estão em uma coluna aonde todos os produtos em promoção são gravados através de um Join com virgula, os ids dos produtos e em outra os ids dos tamanhos, então a leitura seria assim (idprodutos = 5,2,7) e (idtamanhos = 1,2,3), então eu encontro os produtos da seguinte forma.

 

SELECT * FROM desconto d, produtos p WHERE p.Id IN (d.id_produtos)")

 

E por ultimo encontro os tamanhos a qual o cliente deu o desconto:

SELECT * FROM desconto d, tamanhos t WHERE (d.id_tamanho) IN (t.id_tamanho)")

 

É a primeira vez que utilizo essa forma por isso estou perdido em como achar os descontos nos produto e tamanhos solicitados.

 

Se alguem tiver uma ideia para eu resolver meu caso vou agradecer bastante.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A primeira coisa se possível seria normalizar estas estruturas , estruturas do tipo lista complicam buscas de forma desnecessária na minha opinião.

 

Mas precisando usar a estrutura atual acho que o IN não funciona com strings , talvez fazendo um CAST para uma TABLE , ou usando a function INSTR.

 

Já vi questinamentos parecidos aqui neste site , talvez com uma busca você encontre soluções , eu sugiro normalizar o Modelo.

http://pt.m.wikipedia.org/wiki/Normaliza%C3%A7%C3%A3o_de_dados

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_instr

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.