Вместо того, чтобы использовать ключевые слова, такие как FULL OUTER JOIN или FULL JOIN, как я могу выполнить полное внешнее соединение, используя предложение «where» с помощью оператора «+» ?!Как выполнить FULL OUTER JOIN в ORACLE с помощью оператора «+»?
13
A
ответ
19
Вы не можете (по крайней мере, напрямую). Oracle поддерживает только полное внешнее соединение с использованием синтаксиса SQL: 1999.
Вы можете подделать его на unioning два внешних соединений:
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
Это гораздо более удобным для чтения с помощью SQL: 1999 Синтаксис:
select a.field1, b.field2
from table_a a full outer join table_b b
on a.id = b.id
+0
благодарит Allan ... – Munna89
3
Вот пример, который вы можете запустить в оракула, чтобы увидеть результаты для вас самих.
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
То же самое, как:
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
Смежные вопросы
- 1. FULL OUTER JOIN - MySQL
- 2. sqlalchemy FULL OUTER JOIN
- 3. MySQL FULL OUTER JOIN
- 4. MySQL Full Outer Join Workound
- 5. FULL OUTER JOIN in oracle
- 6. FULL OUTER JOIN условие состояния
- 7. Full Outer Join Help Пожалуйста,
- 8. Full Outer Join & Union MySQL
- 9. SQL Partial Full Outer Join
- 10. Mysql имитируя FULL OUTER JOIN
- 11. FULL OUTER JOIN не работает
- 12. LEFT OUTER JOIN + RIGHT OUTER JOIN так же, как FULL OUTER JOIN?
- 13. Что делать с Full Outer Join
- 14. FULL OUTER JOIN не работает как ожидалось
- 15. Как совместить столбцы Свиньи FULL OUTER JOIN
- 16. Double FULL OUTER JOIN в MySQL
- 17. Выберите непустой столбец в FULL OUTER JOIN
- 18. Full Outer Join не работает в MySql
- 19. Неправильный выход в FULL OUTER JOIN запрос
- 20. Симуляция FULL OUTER JOIN в Access
- 21. Объединить результат, установленный в FULL OUTER JOIN
- 22. Внутренняя ошибка Bigquery, вызванная FULL OUTER JOIN
- 23. Linq Full Outer Join on Two Objects
- 24. SQL: FULL Outer Join Not Working
- 25. Full Outer Join "with" table not working
- 26. Mysql Full Outer Join Temporary Tables
- 27. Full Outer Join Using Every Row Once
- 28. Multiple FULL OUTER JOIN на нескольких столах
- 29. MS Access Full Outer Join Issue
- 30. Поддерживает ли memsql Full Outer Join?
Вы должны UNION вместе результаты 2 внешнего соединения запросов (один для A -> B и один для B -> A) –
почему бы вам хотеть? Используйте явные объединения, это предпочтительный метод. Неявная область присоединения SQL antipattern. – HLGEM
Зачем вам это нужно? Просто используйте синтаксис «FULL OUTER JOIN» (с использованием явного объединения стилей ANSI над соединениями implict настоятельно рекомендуется в любом случае) –