select a.col_a
, b.col_b1
, b.col_b2
from tab_a a
, tab_b b
where a.col_a (+) = b.col_b
union
select a.col_a
, b.col_b1
, b.col_b2
from tab_a a
, tab_b b
where a.col_a = b.col_b (+)
order by col_a
O que exatamente esse (+) faz?
9 Respostas
join
Que tipo de join?
Outer join?
Left join?
Right join?
eu ja tinha visto
*=
mas
+=
é a primeira vez.
De qualquer forma a boa é escrever explicitamente o que vc ta fazendo “inner join”, “left join”, “natural join” etc… nosso cérebro trabalha melhor com palavras do que com símbolos :roll:
Simples, de qual lado do igual ele está?
(+ =) = Left Join
(= +) = Right Join
eu ja tinha visto*=
mas
+=
é a primeira vez.
De qualquer forma a boa é escrever explicitamente o que vc ta fazendo “inner join”, “left join”, “natural join” etc… nosso cérebro trabalha melhor com palavras do que com símbolos :roll:
Queria saber o que o (+) significa nesse caso.
Simples, de qual lado do igual ele está?(+ =) = Left Join
(= +) = Right Join
Então quer dizer que:
where a.col_a (+) = b.col_b => tabela A left join tabela B
e
where a.col_a = b.col_b (+) => tabela A right join tabela B
É isso?
Simples, de qual lado do igual ele está?(+ =) = Left Join
(= +) = Right JoinEntão quer dizer que:
where a.col_a (+) = b.col_b => tabela A left join tabela B e where a.col_a = b.col_b (+) => tabela A right join tabela BÉ isso?
Yeah, pelo que me lembro de SQL sim.
Moacir, esta query está fazendo um full outer join.
Na query superior ao union tem um left outer join para tab_a, ou seja, trará tudo de tab_a mesmo se não existir o correspondente em tab_b, na query inferior é o contrário. Como se trata de um union, está fazendo um full outer join. Agora, se não estou enganado, o union (sem union all) traz todos os registros, não eliminando duplicação. Então acredito que a query está furada
Não fui eu quem fez esse select, apenas achei ele na internet. O que eu mais preciso é saber como funciona o lance do (+) que eu nunca tinha visto antes…
Mas o sql é o de menos, o lance mesmo é o que o pessoal do fórum já me respondeu a respeito do (+) ok?!