Ir para conteúdo

POWERED BY:

Arquivado

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

acdestefani

Consulta de vários campos entre duas tabelas

Recommended Posts

Olá pessoal!

Tenho duas tabelas, conforme a seguir:

 

Tabela estudantes (usada para cadastro dos alunos)

-----------------

codigo

aluno

dt_nasc

cpf

rg

mae

rg_resp

cep

rua

numero

bairro

cidade

uf

escola

serie

dataemissao

validade

turno

linha

linha2

dias

rel

usuario

 

Tabela rel_escolas_turnos_series (usada para verificar se o aluno está sendo cadastro na escola, turno e série

-------------------------------- corretas

escola

turno

serie

 

Precisei fazer algumas alterações diretamente no banco de dados e agora preciso fazer uma consulta que me forneça os alunos cadastrados que possuem em seu registro os campos escola, turno e serie diferente do que consta na tabela rel_escolas_turnos_series. A tabela estudantes também tem os campos escola, turno e serie. Isso vai ser útil para corrigir as possíveis irregularidades.

 

DEsde já agradeço a ajuda de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara não entendi, a modelagem ideal seria na sua tabela rel_escolas_turnos_series carregar o código do estudante. Assim você terá apenas uma chave estrangeira e pelo código voce busca a série, turno e escola, não sendo necessário na tabela estudantes colocar os campos da tabela rel_escolas_turnos_series.

 

A modelagem correta seria assim, ai pra buscar isso voce faz a query (exemplo):

 

SELCT e.codigo, e.aluno, rel.turno, rel.serie, rel.escola 
FROM estudantes e, rel_escolas_turnos_series rel
WHERE
   e.codigo = rel.codigoEstudante
ORDER BY 1;

Compartilhar este post


Link para o post
Compartilhar em outros sites

É que a tabela rel_escolas_turnos_series é usada no momento do cadastro do aluno para validar se a escola, série e turno estão corretos. Nesse cadastro de alunos são cadastrados alunos de várias escolas e cada escola possui séries e turno diferentes. Por exemplo:

escola série turno

------ ----- -----

Alfa 2ª série vespertino

Alfa 2ª série matutino

Beta 1ª série matutino

Beta 3ª série matutino

 

Se ao cadastrar um aluno na escola alfa na 2ª série no turno noturno, o sistema dá uma mensagem de erro. A mesma coisa acontece se tentar cadastrar um aluno na 3ª série. O sistema faz a validação através da tabela rel_escolas_turnos_series.

 

Consegui ser mais claro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

+OU- isto.

 

SELECT *
FROM ESTUDANTES,TURNOS_SERIES
WHERE ESTUDANTE.MAT = TURNOS_SERIES.MAT
AND   (ESTUDANTES.ESCOLA <> TURNO_SERIES.ESCOLA OR ESTUDANTES.TURNO <> TURNO_SERIES.TURNO OR  ESTUDANTES.SERIE <> TURNO_SERIES.SERIE)

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.