Ir para conteúdo

POWERED BY:

Arquivado

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

KUROL3

[Resolvido] relaciona e conta

Recommended Posts

tenho uma tabela com os nomes de usuarios

 

tenho outra com mensagem postadas pelos usuarios ou seja tabela de usuarios e mensagem

 

gostaria de fazer um select assim:

 

SELECIONAR TODOS OS USUARIOS DA TABELA USUARIOS E CONTAR A QUANTIDADE DE MENSAGEM LISTANDO POR ORDEM DE QUANTIDADE DE MENSAGEM

 

marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode tentar fazer algo como:

 

select codigo, nome,
(select count(*)
from mensagem where mensagem.usuario = usuario.codigo) as TotalMsg
from usuario order by TotalMsg desc

Compartilhar este post


Link para o post
Compartilhar em outros sites

ajustei os campos para minha tabela que deu o seguinte erro

 

#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 'select count(*) from campanha_votos where campanha_votos.id_can

 

sql tentada rsr

 

 

select id, nome, (select count(*) from campanha_votos where campanha_votos.id_candidato = campanha.id) as TotalMsg from campanha order by TotalMsg desc

 

Marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso acontece por causa da sua versão do MySQL, tente desta forma:

 

select usuario.codigo, usuario.nome, count(*) as TotalMsg
from usuario, mensagem
where mensagem.usuario = usuario.codigo
group by usuario.codigo, usuario.nome
order by TotalMsg desc

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza funcionou so que o engraçado foi que testei o select antigo no mysql antigo e no mysql 5.0.45 nos dois deu erro...

 

mas beleza.. desde já agradeço...

 

Marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom beleza.. mas vamos lá..

 

do seu jeito ro retorna quando os usuarios tem mensagem ou seja quanto a tabela de campanha possui votos para um determinado registro...

 

tentei fazer assim

 

 

select campanha.id, campanha.nome, count as TotalMsg from campanha Left Join campanha_votos ON (campanha_votos.id_candidato = campanha.id)group by campanha.id order by TotalMsg desc

 

rodou todos os candidatos da tabela campanha.. e o candidato que tinha 2 votos ficou certinho porem todo o restante ficou com 1 voto..

 

valew

aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use LEFT OUTER JOIN...

E agrupe por: campanha.id, campanha.nome

 

Entendi seu problema, fiz uns testes aqui, teste desta outra forma, mudando o count...

 

 

select usuario.codigo, usuario.nome, count(mensagem.codigo) as TotalMsg
from usuario left outer join mensagem on usuario.codigo = mensagem.usuario
group by usuario.codigo, usuario.nome
order by TotalMsg desc

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza

 

continua ficando 1 nos registros que nao tem votos

 

sql

 

select campanha.id, campanha.nome, count as TotalMsg from campanha Left outer Join campanha_votos ON (campanha_votos.id_candidato = campanha.id)group by campanha.id, campanha.nome order by TotalMsg desc

Marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Respondi duas vezes seguidas o post anterior, tente novamente desta forma:

 

select usuario.codigo, usuario.nome, count(mensagem.codigo) as TotalMsg
from usuario left outer join mensagem on usuario.codigo = mensagem.usuario
group by usuario.codigo, usuario.nome
order by TotalMsg desc

Compartilhar este post


Link para o post
Compartilhar em outros sites

AAAAAAAAAAAAAAAAAa Muleque...... agora sim...

 

abraço..... precisar de algo manda email ai kuroleARROBAkurole.com.br msn tb..

 

abraco..

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.