Ir para conteúdo

POWERED BY:

Arquivado

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

antonio_gtx

Qual JOIN utilizar ? (left,outer,inner...)

Recommended Posts

Boa tarde,

 

Sou novo no forum/oracle e tenho uma duvida, que mesmo pesquisando não achei algo que respondesse ou provavelmente não tenha entendido as respostas..

 

Tenho um SELECT com 4 LEFTJOINs funcionando perfeitamente.

Quando tento fazer o 5 onde ligo 2 campos da tabela 1 na tabela 5 (que possui os mesmos registros(até o nome inclusive)) não me traz os dados..

 

exemplo:

SELECT
A.CAMPO1, B.CAMPO1, A.CAMPO2, B.CAMPO2
LEFT JOIN B ON A.CAMPO1 = B.CAMPO1 AND A.CAMPO2 = B.CAMPO2
WHERE A.CAMPO1 = B.CAMPO1 AND A.CAMPO2 = B.CAMPO2

Depois de feito o LEFTJOIN se coloco algum campo da tabela B no meio do SELECT e não me traz dado nenhum, e nem dá erro no SQL..

 

O que pode ser ?

 

Obs: Outra coisa que tentei foi substituir no WHERE por A.CAMPO1 = VALOR tambem não retornou nada..

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

antonio_gtx

 

No seu código eu não encontrei o from e nem o group by ! você já tentou com o group by ?

 

Ficaria assim :

SELECT
A.CAMPO1, B.CAMPO1, A.CAMPO2, B.CAMPO2 FROM A
LEFT JOIN B ON A.CAMPO1 = B.CAMPO1 AND A.CAMPO2 = B.CAMPO2
WHERE A.CAMPO1 = B.CAMPO1 AND A.CAMPO2 = B.CAMPO2
GROUP BY A.CAMPO1,B.CAMPO1

Compartilhar este post


Link para o post
Compartilhar em outros sites

E usando o ON do join despensa a condição no WHERE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, consegui resolver obrigado pela respostas!

 

Sei que não botei informaçoes suficientes, o que aconteceu foi que o campo estava setado com tamanho fixo em uma tabela (15) e na outra tabela não..

Quando converti os 2 valores para TO_CHAR '999999999999999' ou seja com 15 caracteres em cada campo das 2 tabelas funcionou perfeitamente.. Pois ambos tinham a mesma quantidade de caracteres.

 

Não sei se foi isso, mas resolveu!

 

obrigado!

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.