Jump to content
seltix

ordenar resultado de pesquisa sql

Recommended Posts

seltix

boas a todos, entao a minha questao é a seguinte.

O que eu quero fazer é listar os blogs que tenho criados no meu site, até ai tudo bem. Depois quero substituir o idGestor de cada linha pelo pelo nome da pessoa correspondente, ate agora tudo bem, é so fasel uma query extre dentro do while.

Agora complica-se quando eu quero adicionar a possibilidade de ordenar a tabela pela coluna que quiser. não haveria problema se nao fosse a coluna idGestor porque a ordenação que deve ser feita nessa coluna é pelo nome do utilizador e nao pelo seu id, o que implica fazer uma sequencia de PESQUISA -> EDIÇÃO DE COLUNA idGestor -> REORDENAÇÃO...

será possivel??? ou estou a fazer uma má extrutura?  :bored:

obrigado a todos.

Share this post


Link to post
Share on other sites
jsWizard

uiiiiii man.. não percebi nada!! LOL!!

:D

é melhor explicares isso melhor.. ou sou eu que estou a precisar de café!! LOL  :D

inté!

Share this post


Link to post
Share on other sites
seltix

uiiiiii man.. não percebi nada!! LOL!!

:D

é melhor explicares isso melhor.. ou sou eu que estou a precisar de café!! LOL  :P

inté!

entao é assim...

tenho a tabela blogs:

id

idGestor

titulo

descricao

...

para fazer um ORDER BY titulo (por exemplo) ta tudo ok nao ah problema.

mas se quiser fazer um ORDER BY idGestor ele ira tar a pôr por ordem os IDs de cada gestor do seu blog, mas nao é isso que eu quero, eu quero que ponha por ordem segundo o seu nome e nao segundo o seu ID.

o problema é que o nome dos gestores está na tabela UTILISADORES...

ou seja devia de aver uma especie de uniao de duas pesquisas antes de fazer o ORDER ou algo do genero...

Share this post


Link to post
Share on other sites
softklin

Vê lá se esta funciona:

SELECT * FROM blogs WHERE idGestor=(SELECT idGestor FROM utilizadores ORDER BY nomeGestor)

Em que o nomeGestor e idGestor são os campos que correspondem à tua tabela utilizadores.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
jsWizard

Vê lá se esta funciona:

SELECT * FROM blogs WHERE idGestor=(SELECT idGestor FROM utilizadores ORDER BY nomeGestor)

Em que o nomeGestor e idGestor são os campos que correspondem à tua tabela utilizadores.

uiiiii man.. que query maluca!! LOL!!


fazes o join das duas tabelas e assim já podes ordenar pelo nome 
algo deste género:

SELECT *
FROM blogs a INNER JOIN utilizadores b ON a.idGestor = b.idUtilizador
ORDER BY b.nome_gestor

estou a assumir que a tua tabela de utilizadores tem uma coluna de chave primária idUtilizador, e que a coluna idGestor tem uma FK para essa coluna. certo?

mui simples man :P

Inté!

Share this post


Link to post
Share on other sites
softklin

uiiiii man.. que query maluca!! LOL!!

Eu na altura de escrever isto, foi de cabeça mesmo, nem experimentei... SQL também não é o meu forte...  :P Mas não dá para resolver assim, por cada idGestor de ambas as tabelas, buscar o nome à dos utilizadores?


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
jsWizard

não sei bem o que pode sair da tua query.. mas boa coisa não deve ser :D

mas é tranquilo! eu não quiz tar a tripar.. foi só um comentário tranquilo :P

Peace! :D

Share this post


Link to post
Share on other sites
seltix

uiiiii man.. que query maluca!! LOL!!


fazes o join das duas tabelas e assim já podes ordenar pelo nome 
algo deste género:

SELECT *
FROM blogs a INNER JOIN utilizadores b ON a.idGestor = b.idUtilizador
ORDER BY b.nome_gestor

estou a assumir que a tua tabela de utilizadores tem uma coluna de chave primária idUtilizador, e que a coluna idGestor tem uma FK para essa coluna. certo?

mui simples man :P

Inté!

brigadao é mesmo isso que precisava :D

apenas nao sera b.idUtilizador mas sim b.id apenas :)

brigadao vo ja testar =)

Share this post


Link to post
Share on other sites
seltix

epa to a executar a linha mas o idGestor ficam todos a valer 0:

SELECT * FROM bdp_blogs a INNER JOIN bdp_utilizadores b ON a.idGestor = b.nome ORDER BY b.nome

Share this post


Link to post
Share on other sites
seltix

epa to a executar a linha mas o idGestor ficam todos a valer 0:

SELECT * FROM bdp_blogs a INNER JOIN bdp_utilizadores b ON a.idGestor = b.nome ORDER BY b.nome

e para testar fiz esta:

SELECT * FROM bdp_blogs INNER JOIN bdp_utilizadores ON bdp_blogs.refMascara = bdp_utilizadores.nome

e resulta em 0 registos :S

Share this post


Link to post
Share on other sites
seltix

bem agora queria adicionar mais uma coisa :)

tenho a sql :

SELECT a.*, b.nome, b.apelido FROM bdp_blogs a JOIN bdp_utilizadores b WHERE a.idGestor = b.id

e queria adicionar esta :

SELECT COUNT(*) FROM bdp_blogs_publicacoes WHERE idBlog=id

é possivel?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

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.