Olá,
Gostaria de fazer uma query mas o retorno ou vem ou não vem dados. Vou citar exemplos.
Me ajudem PF se o melhor caso é union ou outro?
1) Tabela 1 e tabela 2 com campos distintos e um campo em comum com Join no campo card.
Resultado: No meu select qdo tem dados nas 2 tabelas então retornam todos em comum em uma única linha.
Tabela 1(id, card)
1, xxx
2, yyy
3, zzz
Tabela 2 (id, card, fraude)
1, xxx, sim
2, yyy, sim
3, zzz, pendente
Select a.id, a.card, b.card, b.fraude
from t1 a,t2 b
where a.card=b.card;
Retorno:
Id,Card,Card,fraude
1, xxx,xxx,sim
2, yyy,yyy,sim
3, zzz,zzz,pendente
O problema é qdo na tabela 2 não tem o dado:
2)Tabela 1 e tabela 2 com campos distintos e um campo em comum com Join no campo card.
Resultado: No meu select qdo tem dados na tabela 1 e não tiver dado na tabela 2 então retornam linha que só tem na tabela 1.
Tabela 1(id, card)
1, xxx
2, yyy
3, zzz
4,xyz
Tabela 2 (id, card, fraude)
1, xxx, sim
2, yyy, sim
3, zzz, pendente
Select a.id, a.card, b.card, b.fraude
from t1 a,t2 b
where a.card=b.card;
Retorno:
Id,Card,Card,fraude
Nenhuma linha
Ou não estou certo, retorna igual ao exemplo1:
1, xxx,xxx,sim
2, yyy,yyy,sim
3, zzz,zzz,pendente
Pergunto, neste exemplo 2 como faço pra retornar somente todas as linhas e se não tiver a linha na tabela 2 ficar com estes campos null?
Desta forma;
Retorno:
Id,Card,Card,fraude
1, xxx,xxx,sim
2, yyy,yyy,sim
3, zzz,zzz,pendente
4,xyz,null,null
Ou no lugar de null, ficar vazia as colunas REF a tabela 2.
Na vdd são exemplos, mas a qtd de Join é mais complexos
Muito obrigado!!!!