Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Gjob83

SQL Query

Recommended Posts

Gjob83

Boas!:

Tenho uma query em mySQL que é a seguinte:

SELECT produto.id_produto,produto.nome,produto.preco,imagem.link 
FROM produto,categoria,imagem 
WHERE produto.id_categoria = categoria.id_categoria AND categoria.nome='Lareiras' AND produto.id_produto=imagem.id_produto

O output é o seguinte:

1  Lareira A  555.20  imagens/produtos/lareira_a.jpg

1 Lareira A 555.20 imagens/produtos/lareira_d.jpg

2 Lareira B 555.20 imagens/produtos/lareira_b.jpg

3 Lareira C 555.20 imagens/produtos/lareira_c.jpg

Mas eu pretendia que fosse:

1  Lareira A  555.20  imagens/produtos/lareira_a.jpg

2 Lareira B 555.20 imagens/produtos/lareira_b.jpg

3 Lareira C 555.20 imagens/produtos/lareira_c.jpg

Ou seja: que mostra-se apenas o primeiro registo, quando houvesse registos repetidos do campo id_produto

Alguem me pode ajudar?


"O que não nos mata, torna-nos mais fortes!"

Share this post


Link to post
Share on other sites
Hipnoted

Podes usar o DISTINCT:

SELECT DISTINCT(produto.id_produto),produto.nome,produto.preco,imagem.link
FROM produto,categoria,imagem
WHERE produto.id_categoria = categoria.id_categoria AND categoria.nome='Lareiras' AND produto.id_produto=imagem.id_produto

Assim eliminam-se os duplicados.


"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Share this post


Link to post
Share on other sites
Gjob83

O link tem k ser diferente, porque cada produto pode ter mais k uma imagem associada.

Quanto à solução proposta pelo Hipnoted, obtive o seguinte erro:

SELECT DISTINCT (produto.id_produto), produto.nome, produto.preco, imagem.link

FROM produto, categoria, imagem

WHERE produto.id_categoria = categoria.id_categoria

AND categoria.nome = 'Lareiras'

AND produto.id_produto = imagem.id_produto

ERROR

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.id_categoria = categoria.id_categoria AND categoria.nome='Lareiras' AND produto' at line 1

Tenho que ver o que se passa.

Obrigado


"O que não nos mata, torna-nos mais fortes!"

Share this post


Link to post
Share on other sites
Hipnoted

Nem reparei que o link era diferente.

Sendo assim não vejo solução. Quanto ao erro deves ter de tirar os parêntesis, não usei muito o mysql ainda e pode ser que não aceite os ().


"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Share this post


Link to post
Share on other sites
Gjob83

Resolvido!

Era isso mesmo!

Obrigadao!

[ ]


"O que não nos mata, torna-nos mais fortes!"

Share this post


Link to post
Share on other sites
RVG

boas....

sou novo nisto, mas gostava que me retirassem algumas duvidas....

O output é o seguinte:

1    Lareira A    555.20    imagens/produtos/lareira_a.jpg

1    Lareira A    555.20    imagens/produtos/lareira_d.jpg

e tu queres a primeira... a imagem que queres é indiferente , o mysql é que escolhe?

AND produto.id_produto = imagem.id_produto

nao sendo produto.id_produto unico, parto do principio que imagem.id_produto tambem nao o seja.....

como aplicas un distinct sobre produto.id_produto, sabes como isso se vai repercurtir sobre o imagem.id_produto ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.