Karuta’s ASP & M$ SQLserver

Dicas, códigos e outras coisinhas de meus estudos para não esquecer…

SQL SERVER não traz NULL em um INNER JOIN

Posted by karuta em setembro 24, 2008

Se não está retornando nada, relaxe as restrições. Como vc não tem nenhum WHERE, só lhe resta relaxar os JOINs. O tipo de JOIN que você está fazendo não traz os dados caso a tabela filha não tenha a relação com a pai (tenha um NULL aí no meio). Mude os INNER JOIN para LEFT JOIN e verifique se não aparecem NULLs no resultado.

O fato é que se tem NULL num campo usado para fazer INNER JOIN, esse registro não será trazido. O INNER JOIN é uma operação que combina os registros de duas tabelas, sendo que se ele não existir em uma das tabelas (referência NULL), não constará no resultado. 

A mudança para LEFT modifica o JOIN para um OUTER, que adiciona o registro ao resultado mesmo que ele não conste numa das tabelas relacionadas (no caso, usando o LEFT, vai trazer mesmo que não conste na tabela filha).

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: