Ir ao conteúdo
  • Cadastre-se

Utilização do LEFT JOIN para consultar apenas 1 registro;


Ir à solução Resolvido por Erciley Junior,

Posts recomendados

Olá galera! primeiramente agradeço a oportunidade de estar no fórum clubedohardware...

Minha dúvida é, tenho o seguinte banco de dados: Que se chama 'Escola'

 

70IMQo.png

 

Meu problema é o seguinte. Eu consigo fazer tranquilo o left join para ligar as 3 tabelas, porém vem todos os dados de todos os alunos cadastrados no banco como aparece na imagem abaixo: Obs: adicionei apenas 2 cadastros ->

 

ddjC45.png

 

...  Pois bem, eu gostaria de saber como eu faria para fazer esse left join para puxar os dados de apenas 1 aluno e não de todos cadastrados no banco no comando do left join ou left outer join

Obs: quero tanto os dados que contém null quando os que já foram inseridos e que vão aparecer com o comando. (Quero todas as tabelas, independentemente se tem ou não dados)

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

Eu fiz com Inner Join e sai perfeitamente com o where desse jeito: 

 

select N.Nota1, N.Nota2, M.Materia, A.Matriculafrom notas as Ninner join materias as Mon N.Materias_id = M.idinner join aluno as Aon N.Aluno_id = A.idwhere A.id like 1;
 
Porém... Só aparece os dados do Aluno 1 que se encontra registros... Eu quero que venha os null também... Eu tentei fazer como você me disse utilizando o where da seguinte forma:
 
select * from materias left outer join notas on notas.Materias_id = materias.idwhere aluno.id = 1;
 
Porém... Deu problema, não compilou. Então tentei o seguinte...
 
select * from materias left outer join notas on notas.Materias_id = materias.idwhere notas.Aluno_id like 1; 
 
Deu certo, porém trás apenas os resultados que estão inseridos e não os null também, o qual eu quero visualizar.

@dif

 

Link para o comentário
Compartilhar em outros sites

  • Solução

Oi Hugo, veja se é isso que você quer.

 

select * from materias left outer join notas on notas.materiais_id = materiais.idwhere aluno_id is null or aluno_id = 1;

 

Pra falar a vdd, não entendi direito o que está querendo, se não for isso, poste todos os dados de todas as tabelas, e poste qual seria a matriz de dados que desejaria como retorno, talvez fique mais fácil.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

valeu amigooo @Erciley Junior ! Obrigado amigo, me ajudou muito!! é isso mesmo :D

Você já matou minha pergunta, só mais uma pergunta por fora... Teria como, no lugar do aluno_id (chave primaria int) eu utilizasse a Matricula (coluna varchar) da tabela Aluno para exibir este mesmo resultado?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...