murilo 0 Denunciar post Postado Janeiro 2, 2014 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
Motta 645 Denunciar post Postado Janeiro 2, 2014 Me parece certo, qual o erro ? Compartilhar este post Link para o post Compartilhar em outros sites
murilo 0 Denunciar post Postado Janeiro 2, 2014 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
Motta 645 Denunciar post Postado Janeiro 2, 2014 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