Fórum Sql para consulta usando 3 tabelas #285087
17/06/2005
0
estou com dificuldades para fazer a seguinte instrução sql
tenho 3 tabelas
PRODUTO
PRODUTODETALHE
COMPATIVEL
MARCA
Sendo:
PRODUTO
IDPRODUTO - CHAR - 5
DESCRICAO - VARCHAR - 40
PRODUTODETALHE
ID - INTEGER - AUTOINCREMENTO
IDPRODUTO - CHAR - 5
COMPATIVEL - INTEGER
COMPATIVEL
ID - INTEGER - AUTOINCREMENTO
DESCRICAO - VARCHAR - 40
MARCA - INTEGER
MARCA
ID - INTEGER - AUTOINCREMENTO
DESCRICAO - VARCHAR - 30
O meu problema é o seguinte eu tenho que fazer um consulta buscando pela marca do produto ou seja MARCA.DESCRICAO
será que fui claro na minha dúvida ?
se alguem puder me ajudar ...
valewss
Mmoreira
Curtir tópico
+ 0Posts
17/06/2005
Mmoreira
eu tenho que exibir a DESCRICAO DO PRODUTO
Gostei + 0
17/06/2005
Gandalf.nho
SELECT PRODUTO.* FROM PRODUTO INNER JOIN PRODUTODETALHE ON PRODUTO.IDPRODUTO = PRODUTODETALHE.IDPRODUTO INNER JOIN COMPATIVEL ON PRODUTODETALHE.COMPATIVEL = COMPATIVEL.ID INNER JOIN MARCA ON COMPATIVEL.MARCA = MARCA.ID WHERE MARCA.DESCRICAO = :DESCRICAO
Gostei + 0
17/06/2005
Mmoreira
este sql que vc me retornou tem um pequeno problema, por exemplo se eu tiver mais de uma compatibilidade cadastrada para o mesmo produto me é retornado varias vezes o mesmo produto ... varias vezes quanto o produto tiver de compatibilidade disponivel ...
eu tentei usar o distinct mas nao deu certo ...
o que eu poderia fazer para resolver isto?
Gostei + 0
17/06/2005
Gandalf.nho
SELECT PRODUTO.DESCRICAO FROM PRODUTO INNER JOIN PRODUTODETALHE ON PRODUTO.IDPRODUTO = PRODUTODETALHE.IDPRODUTO INNER JOIN COMPATIVEL ON PRODUTODETALHE.COMPATIVEL = COMPATIVEL.ID INNER JOIN MARCA ON COMPATIVEL.MARCA = MARCA.ID WHERE MARCA.DESCRICAO = :DESCRICAO GROUP BY PRODUTO.DESCRICAO
Gostei + 0
17/06/2005
Mmoreira
SELECT distinct(PRODUTO.*) FROM PRODUTO
ele esta eliminando as duplicidades ...
mas agora tem um outro problema ... se eu tiver um produto cadastrado e se o mesmo nao tiver uma compatibilidade definida este nao aparece no resultado da consulta .... tem como resolver isto?
Gostei + 0
17/06/2005
Mmoreira
WHERE produto.descricao like :DESCRICAO
para atribuir um valor para o parametro eu fiz assim:
params[0].asstring := edtBusca.text + ´¬´;
ai acontece o que eu falei .. só é retornado os produtos que tem uma compatibilidade cadastrado
Gostei + 0
18/06/2005
Gandalf.nho
Gostei + 0
20/06/2005
Mmoreira
muito obrigado pela ajuda, consegui resolver meu problema.
valewss
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)