En lugar de utilizar palabras clave como FULL OUTER JOIN o FULL JOIN, ¿cómo puedo realizar la combinación externa usando la cláusula 'where' con la ayuda del operador '+'?¿Cómo realizar la UNIÓN EXTERIOR COMPLETA en ORACLE usando el operador '+'?
13
A
Respuesta
19
No puede (al menos directamente). Oracle solo admite una combinación externa completa utilizando SQL: sintaxis de 1999.
Usted puede fingir por unificante dos combinaciones externas:
select a.field1, b.field2
from table_a a, table_b b
where a.id = b.id(+)
union all
select a.field1, b.field2
from table_a a, table b b
where a.id(+) = b.id
and a.id is null
Es mucho más fácil de leer usando el SQL: 1999 sintaxis:
select a.field1, b.field2
from table_a a full outer join table_b b
on a.id = b.id
+0
gracias Allan ... – Munna89
3
He aquí un ejemplo se puede ejecutar en el oráculo para ver los resultados para ti también.
with
a as
(select 'A' tbl, level id from dual connect by level < 1000),
b as
(select 'B' tbl, level + 500 id from dual connect by level < 1000)
select a.tbl, a.id, b.tbl, b.id from a, b where a.id = b.id(+)
union all
select a.tbl, a.id, b.tbl, b.id from a, b where a.id(+) = b.id and a.id is null
Es lo mismo que:
with
a as
(select 'A' tbl, level id from dual connect by level < 1000),
b as
(select 'B' tbl, level + 500 id from dual connect by level < 1000)
select a.tbl, a.id, b.tbl, b.id from a full outer join b on a.id = b.id
Cuestiones relacionadas
- 1. Usando la subselección para realizar la UNIÓN IZQUIERDA
- 2. Unión externa completa en django
- 3. Diferencia entre unión interna y unión completa
- 4. Cómo realizar la actividad, sin cubrir la pantalla completa
- 5. ¿Cómo realizar una unión similar a SQL en Perl?
- 6. ¿Cómo hacer una unión externa completa en Linq?
- 7. HQL: ¿Es posible realizar una UNIÓN INTERNA en una subconsulta?
- 8. Cómo realizar la unión Une entre múltiples tablas en LINQ lambda
- 9. usando el operador OR en javascript comunicado
- 10. reenviar una clase completa con un operador
- 11. Usando el operador no igual en Cakephp
- 12. Usando el operador NOT en condiciones IF
- 13. Realizar una unión interna para múltiples columnas en la misma tabla
- 14. Usando el operador de mod en la aplicación de iOS
- 15. ¿Cuándo es una buena situación usar una unión externa completa?
- 16. usando donde y unión interna en mysql
- 17. FizzBuzz usando el operador condicional ternario
- 18. cómo realizar la división en el intervalo de tiempo
- 19. ¿Cómo realizar una unión IZQUIERDA en SQL Server entre dos instrucciones SELECT?
- 20. Android: Cómo evitar la acción completa usando Dialog
- 21. Cómo usar la unión en zend db
- 22. ¿Python coacciona los tipos al realizar una sobrecarga del operador?
- 23. Cómo realizar la interpolación bilineal en Python
- 24. php usando 'y' operador
- 25. FIltering en la unión?
- 26. Cómo recuperar la jerarquía de roles completa en Symfony
- 27. Unión en el marco de la entidad
- 28. ¿Cómo puedo escribir varias declaraciones usando el operador condicional
- 29. ¿Cómo configurar la unión en el inicializador de clase?
- 30. ¿Cómo usar la unión cruzada en el acceso?
Usted tendría que UNIÓN juntos los resultados de 2 combinación externa consultas (una para A -> B y uno de B -> A) –
¿por qué se ¿querer? Use combinaciones explícitas, es el método preferido. Implícito se une área antipattern SQL. – HLGEM
¿Por qué querrías hacer eso? Simplemente use la sintaxis 'FULL OUTER JOIN' (utilizando el estilo ANSI explícito se une a implict joins es muy recomendable de todos modos) –