Ir para conteúdo

POWERED BY:

Arquivado

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

eronventer

Relacionando tabelas

Recommended Posts

Ae galera,

 

Seguinte, no sistema de uma loja um produto poderá fazer parte de diversas linhas, para isso criei uma tabela separada que irá

gravar o id_produto e o id_linha, porém este mesmo produto pode existir em diversas cores, e ao selecionar a linha desejada, é

necessário mostrar este produto várias vezes nas cores que ele está cadastrado.

 

O meu problema está em relacionar 2 tabelas descritas abaixo que possuem o mesmo campo: id_produto.

Tentei usar o where normalmente, mas não funciona, ele mostra muitos produtos sendo que o correto no exemplo

abaixo seria apenas 2.

 

tb_prd_dados: id | produto | codigo | preco_de | preco_por

tb_prd_categorias: id | id_produto | id_linha

tb_prd_fotos: id | id_produto | id_cor | foto

tb_prd_linhas: id |linha

tb_prd_cores: id | cor

 

SELECT DISTINCT F.id_produto, F.id_cor, CT.id_linha, L.linha, C.cor, P.codigo, P.preco_de, P.preco_por 
FROM tb_prd_fotos F, tb_prd_cores C, tb_prd_dados P, tb_prd_categorias CT, tb_prd_linhas L
WHERE F.id_cor = C.id
AND F.id_produto = P.id
AND F.angulo = 'Lateral'
AND P.status =1
AND CT.id_linha = L.id
AND CT.id_linha = '3'
ORDER BY F.id_produto DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez o problema esteja na tabela tb_prd_linhas pois escrevendo esta query utilizando JOINS ao invés de tabela aninhadas não é possível estabelecer a ligação entre a tabela tb_prd_linhas e as demais tabelas.

É claro que deve haver uma ligação, porém pela sua query original, não é possível identifica-la.

 

 

SELECT DISTINCT F.id_produto, F.id_cor, CT.id_linha, L.linha, C.cor, P.codigo, P.preco_de, P.preco_por

FROM tb_prd_fotos F

JOIN tb_prd_cores C

ON F.id_cor = C.id

JOIN tb_prd_dados P

ON F.id_produto = P.id

AND P.status =1

JOIN tb_prd_linhas L

ON ???

JOIN tb_prd_categorias CT

ON CT.id_linha = L.id

AND CT.id_linha = '3'

WHERE F.angulo = 'Lateral'

ORDER BY F.id_produto DESC

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.