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

Gjob83

SQL Query

7 mensagens neste tópico

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ().

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora