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

joaoqalves

[Resolvido] Query SQL

2 mensagens neste tópico

Boas pessoal, tenho as seguintes três tabelas:

[table]

[td]Alunos[/td]

[td]

CodAluno

[/td]

[td]

P.K.

[/td]

[td]

Nome

[/td]

[/table]

[table]

[td]Turmas[/td]

[td]

CodTurma

[/td]

[td]

P.K.

[/td]

[td]

Turma

[/td]

[/table]

[table]

[td]AlunosTurmas[/td]

[td]

CodAluno

[/td]

[td]

P.K. / F.K.

[/td]

[td]

CodTurma

[/td]

[td]

P.K. / F.K.

[/td]

[td]

Numero

[/td]

[/table]

Qual é a query para saber as turmas onde o aluno não se encontra? Para ver onde ele está inserido basta, por exemplo, fazer:

SELECT turma FROM Turmas,AlunosTurmas WHERE Turmas.CodTuma = AlunosTurmas.CodTurma AND AlunosTurmas.CodAluno=1

Edit: Graças a uma ajuda do JoaoRodrigues resolvi da seguinte forma:

SELECT DISTINCT turma FROM Turmas, AlunosTurmas
WHERE AlunosTurmas.CodAluno=1 
AND Turmas.CodTurma NOT IN 
(SELECT AlunosTurmas.CodTurma FROM Turmas, AlunosTurmas WHERE Turmas.CodTurma=AlunosTurmas.CodTurma AND AlunosTurmas.CodAluno=1)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

olha desculpa discordar do teu método, eu sugeria:

Aluno

CodAluno (chave primaria)

Nome

CodTurmas (chave externa que liga ao campo CodTurma da tabela Turmas)

Numero

Turmas

CodTurma  (chave primaria)

Turma

AnoLectivo

Letra (que a representa)

Sendo assim, uma turma tem vários alunos(como vais ler da relação entre tabelas).

Não precisas de criar uma tabela "AlunosTurmas" para guardar a relação entre as duas, assim vais tar sempre a repetir o campo "anolectivo" cada vez que inserires um aluno na mesma turma, e cada vez que inserires um aluno vais ter que criar um registo na tabela "Alunos" e outro na tabela "AlunosTurmas"(para ligar o aluno á turma.

Com o teu método, caso queiras alterar o ano lectivo a uma turma(o que acontece todos os anos) tens que seleccionar um monte de registos para fazer um Update á tabela, com o meu alteras apenas um registo.

E vai-te facilitar as Querys....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora