Problemas para retornar dados inner join
18/07/2019
0
Sou nova no mundo do banco de dados e preciso de uma ajuda.
Fiz uma consulta com inner join porem nao retornou um dado de uma tabela que eu liguei.
este campo possui dado mas ele retorna como null. Gostaria de entender porque
Fiz uma consulta com inner join porem nao retornou um dado de uma tabela que eu liguei.
este campo possui dado mas ele retorna como null. Gostaria de entender porque
Camila Zanquini
Curtir tópico
+ 0
Responder
Post mais votado
19/07/2019
Posta seu SQL, para facilitar a ajuda!
INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL OUTER JOIN são usado para estabelecer relação entre tabelas.
No exemplo abaixo temos a tabela funcionario e cargo. Na tabela funcionario temos o campo idCargo que se relacionado com a tebela cargo trará a descrição do cargo. Assim ao invés de repetirmos o nome do cargo na tabela funcionario gravamos o idCargo e relacionamento para buscá-lo.
Sugiro uma lida em
Exemplo:
INNER JOIN, LEFT JOIN, RIGHT JOIN e FULL OUTER JOIN são usado para estabelecer relação entre tabelas.
No exemplo abaixo temos a tabela funcionario e cargo. Na tabela funcionario temos o campo idCargo que se relacionado com a tebela cargo trará a descrição do cargo. Assim ao invés de repetirmos o nome do cargo na tabela funcionario gravamos o idCargo e relacionamento para buscá-lo.
Sugiro uma lida em
https://blog.masterdaweb.com/programacao-1/sql/diferenca-entre-inner-join-left-join-right-join-e-full-outer-join/
Exemplo:
declare @funcionario table (matricula int, nome varchar(30), idCargo int) declare @cargo table (id int, descricao varchar(30)) insert into @funcionario values (1000, 'Volter', 10) insert into @funcionario values (1000, 'Espinoza', 30) insert into @funcionario values (1000, 'Schopenhauer', 5) insert into @funcionario values (1000, 'Hume', null) insert into @funcionario values (1000, 'Nietzsche', 30) insert into @cargo values (10, 'Diretor') insert into @cargo values (30, 'Gerente') insert into @cargo values (5, 'Coordenador') --No exemplo abaixo Hume não aparece pois o campo idCargo estar null e estamos usando INNER JOIN select f.matricula, f.nome, f.idCargo, c.descricao from @funcionario f inner join @cargo c on f.idCargo = c.id --Resultado --matricula nome idCargo descricao ------------- ------------------------------ ----------- ------------------------------ --1000 Volter 10 Diretor --1000 Espinoza 30 Gerente --1000 Schopenhauer 5 Coordenador --1000 Nietzsche 30 Gerente --No exemplo abaixo Hume APARECE, apesar do campo idCargo estar null e estamos usando LEFT JOIN --Assim virão todos os registros da tabela @funcionario e da tabela @cargo somente onde haja equivalência select f.matricula, f.nome, f.idCargo, c.descricao from @funcionario f left join @cargo c on f.idCargo = c.id --Resultado --matricula nome idCargo descricao ------------- ------------------------------ ----------- ------------------------------ --1000 Volter 10 Diretor --1000 Espinoza 30 Gerente --1000 Schopenhauer 5 Coordenador --1000 Hume NULL NULL --1000 Nietzsche 30 Gerente
Jothaz
Responder
Clique aqui para fazer login e interagir na Comunidade :)