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

bioshock

[Resolvido] Dois selects sem IDs interligados

Recommended Posts

bioshock

Boas,

Antes de mais parece-me pouco provável que isto seja possível, ou pelo menos positivo de se fazer, mas fica a ideia.

Tabela Utilizadores:

ID| Nome | Email
1 | AA| teste@hotmail.com
2 | AA| alfredo@hotmail.com
3 | CC| joaquim@iol.pt

Tabela Dados

ID| Data| Notas| Email
1 |2013| atao| alfredo@hotmail.com
2 |2012| mau| alfredo@hotmail.com
3 |2013| psiuu| joaquim@iol.pt
4 |2013| frango| teste@hotmail.com

Bem, vou tentar ser explícito. Basicamente o que pretendendo é uma ligação das duas tabelas, onde a única ligação entre elas é o email. Eu quero seleccionar os dados todos, consoante o "Nome" da tabela Utilizadores e consoante o "Email". O "Email" apenas servirá para fazer a "interligação".

Ora, o que eu idealizei:

SELECT dados.data, dados.notas
FROM dados, utilizadores
WHERE utilizadores.nome = (SELECT nome FROM utilizadores WHERE email = 'alfredo@hotmail.com')
GROUP BY dados.email
ORDER BY dados.id DESC

Atendendo a esta query, o que eu queria que me devolvesse era:

2013 | atao
2012 | mau
2013 | frango

E o que me está a devolver é:

2013 | atao
2012 | mau
2013 | psiuu
2013 | frango

Possivelmente isto não é possível e terei de colocar uma chave estrangeira que os interligue.

Bem..

Um minuto depois de ter escrito o post, lembrei-me de fazer o INNER JOIN entre os emails e..parece-me que está a funcionar!

SELECT dados.data, dados.notas
FROM dados
INNER JOIN utilizadores ON dados.email = utilizadores.email
WHERE utilizadores.nome = (SELECT nome FROM utilizadores WHERE email = 'alfredo@hotmail.com')
GROUP BY dados.email
ORDER BY dados.id DESC

Qualquer sugestão/conselho é bem vindo. :thumbsup:

Edited by Rui Carlos
Formatação do código.

Share this post


Link to post
Share on other sites
HappyHippyHippo

 select `dados`.`data`,
        `dados`.`notas`
   from `dados` inner join `utilizadores` on `dados`.`email` = `utilizadores`.`email`
order by `dados`.`id` desc

basta isto

Edited by brunoais
geshi estava correto, mas escolhi um que usa cores mais apropriado para o MySQL.

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
bioshock

Pois, ainda mais simples. Afinal, tenho o email como campo de interligação..visto que ele é único.

Parece-me bem. Obrigado.

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.