Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

murilo

Consulta entre tabelas

Recommended Posts

Olá pessoal,

 

Em nossa base de dados, somente consideramos a matrícula de um aluno ativa quando ele tem pelo menos uma parcela paga.

 

Preciso pegar todas as matrículas que o aluno não pagou nenhuma parcela.

 

Minha estrutura atual está assim:

 

aluno(Id_aluno, nome)

turma(Id_turma, Id_curso, nome)

matricula(Id_matricula, Id_aluno, Id_turma, data_matricula)

parcela(Id_parcela, Id_matricula, vencimento, valor, status)

 

Tentei da forma abaixo mas não consegui resultado satisfatório:

SELECT
  m.Id_matricula, a.nome nomeA, t.nome nomeT, m.status 
FROM 
  matricula m, aluno a, turma t 
WHERE 
  m.Id_aluno = a.Id_aluno AND 
  m.Id_turma = t.Id_turma AND 
  m.Id_matricula NOT IN (SELECT p.Id_matricula FROM parcela p WHERE p.status != 1);
// p.status: 0: aberta / 1: paga

Alguém poderia me orientar?

 

Feliz 2014 para todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele não executa, a tabela matricula tem mais de 13.000 registros e a de parcelas mais de 182.000. Faz mais de meias hora que coloquei query no PhpMyAdmin e até agora ele não me deu resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente :

 

SELECT m.Id_matricula, a.nome nomeA, t.nome nomeT, m.status 
FROM matricula m, aluno a, turma t 
WHERE m.Id_aluno = a.Id_aluno 
AND m.Id_turma = t.Id_turma 
AND m.Id_matricula NOT EXISTS (SELECT p.Id_matricula 
                               FROM parcela p 
                               WHERE P.ID_MATRICULA = m.Id_matricula                            
                               AND p.status != 1); 
                               // p.status: 0: aberta / 1: paga

 

Estas tabelas tem índices ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.