1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida SQL

Discussão em 'Web Development' iniciada por Cfreitas, 11 de Dezembro de 2012. (Respostas: 3; Visualizações: 710)

  1. Cfreitas

    Cfreitas Power Member

    Boas pessoal,

    Não sei se é aqui mas como a grande parte das duvidas SQL estão aqui resolvi colocar a minha também... aqui vai:

    Tenho 3 tabelas:
    Alunos -> ID,NomeP,NomeU,Morada...
    AlunoFazTreino-> IDAluno, IDTreino
    Treino -> ID, Dia, Local...

    Agora, o meu problema é:

    Eu queria fazer um select que me retornasse por casa treino os nomes dos alunos que estiveram no treino. Já o faço para cada treino em especifico mas queria fazer para todos ao mesmo tempo.
    Qualquer coisa deste tipo:

    IDTreino:
    1------ Joao
    Antonio
    Jevarsio
    2------ Manuel
    Toni
    ....


    So... can you help?

    cumps
     
  2. Sa[n]dman

    Sa[n]dman Power Member

    em SQL não sei bem, mas em MySQL seria assim:

    Código:
    SELECT t.ID, a.Name FROM Aluno a
    JOIN AlunoFazTreino aft ON a.ID = aft.AlunoID
    JOIN Treino t ON t.ID = aft.TreinoID
    
    não deve ser muito diferente.
     
  3. tkm_[pt]

    tkm_[pt] Power Member

    Não me parece que essa query esteja certa para o que ele pretende.
    Acho que o mais correcto seria:
    Código:
    SELECT t.ID, t.Nome, a.Nome
    FROM Treino t JOIN AlunoFazTreino aft ON t.ID = aft.IDTreino
    JOIN Aluno a ON aft.IDAluno = a.ID
    WHERE t.Local = '<Nome do local>'
    GROUP BY t.ID, t.Nome
    ORDER BY t.ID, a.Nome
    
    Como o SQL tem que mostrar todos os campos, como resultado continua a ser mostrado o ID do treino em todas as linhas. Não há muitas voltas a dar nisso tirando uma formatação dos resultados numa linguagem à parte.
     
  4. Cfreitas

    Cfreitas Power Member

    Obrigado =)
    Eu já tinha pensado que não me ia ser possível fazer isto sem utilizar os dados numa linguagem de programação mas queria ver se alguém tinha outro método/opinião.

    Obrigado.
     

Partilhar esta Página