Ir ao conteúdo

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


Hugo Vidal

Posts recomendados

Postado

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.

Postado

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

 

Postado

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.

Postado

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?

Postado

Oi Hugo, imaginando que esse campo matrícula seja o nome do aluno ou algo do tipo, tem sim.

 

Você só tem que sempre se lembrar que campos usados em Where e JOIN, precisam ter índices para melhorar a performance das suas querys 

 

T+ ^^

Arquivado

Este tópico foi arquivado e está fechado para 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!