Duvida SQL

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
 
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.
 
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.
 
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.
 
Back
Topo