Ir para conteúdo

Arquivado

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

Cesão

[Resolvido] Registros iguais

Recommended Posts

Olá, amigos. Eu sei... o assunto é antigo, vão me dizer para buscar no fórum ou no Google, mas acreditem.. eu fiz e não achei anda satisfatório.

 

Encontrei exemplos com DISTINCT, mas que continuavam mostrando registros iguais e encontrei exemplos com GROUP BY, mas todos eles davam erro.

 

Meu select é:

SELECT id, anuncio, valor, plano FROM tabela order by anuncio

 

O problema é que tenho anuncios com o mesmo nome, mas quero mostrar apenas anuncios com nomes diferentes. Preciso dar select nos outros dados tbm para mostra-los na tela... usando dinstinct e group by quando há apenas um campo, funciona, mas quando baixo mais de um campo, não.

 

Alguém me ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma maneira.

 

SELECT id, anuncio, valor, plano 
FROM tabela 
WHERE id = (SELECT MAX(id) from tabela tabela2
            WHERE  tabela2.anuncio = tabela.anuncio)
order by anuncio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, não entendi a parte do tabela tabela2. Que tabela2 seria essa? Não entendi muito bem esse comando.

Eu fiz algo assim, mas não deu muito certo:

 

SELECT a.id, a.anuncio, a.valor, a.plano
FROM tabela a 
WHERE a.id= (SELECT MAX(a.id) from tabela a, tabela b WHERE a.anuncio = b.anuncio) ORDER BY a.anuncio

Não deu erro, mas apareceu apenas uma palavra e não a listagem completa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ja tentou com o IN

 

Abçs

 

beleza, A.Jr? Se você se refere na parte do WHERE a.id e ao inves de usar =, usar IN, já sim, e o resultado é o mesmo. aparece apenas um anúncio.

Compartilhar este post


Link para o post
Compartilhar em outros sites


Maior id de um anuncio qualquer

SELECT MAX(id) from tabela

WHERE tabela2.anuncio = 'xxx'

 

Listagem pediada

 

SELECT id, anuncio, valor, plano

FROM tabela

 

Juntando os dois e paara evitar comflito renomeando por alias o segundo select pois estamos lendo a mesma tabela.

 

SELECT id, anuncio, valor, plano

FROM tabela

WHERE id = (SELECT MAX(id) from tabela tabela2

WHERE tabela2.anuncio = tabela.anuncio)

order by anuncio

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta, esse é o select mais doido que eu já vi! Tenho que estudar ele e entender depois direito! hehe Não entendi direito como a parte do MAX funciona. ACHO que você pega anuncios que são iguais em texto, e então, pega o maior id entre eles, correto?

 

Bom, de qualquer forma, funcionou!! Obrigado pela solução!

Compartilhar este post


Link para o post
Compartilhar em outros sites

... pega o maior id entre eles, correto? ...

Exato, uma forma de

... mostrar apenas anuncios com nomes diferentes ...

.

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.