而不是使用像FULL OUTER JOIN或FULL JOIN這樣的關鍵字,我怎樣才能在'+'操作符的幫助下使用'where'子句執行完全外連接?如何使用'+'運算符在ORACLE中執行FULL OUTER JOIN?
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
這裏是你可以在Oracle運行看一個例子你自己的結果也是如此。
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. UNION與FULL OUTER JOIN的執行細節
- 2. 如何在TALEND工具中執行FULL OUTER JOIN?
- 3. Django的FULL OUTER JOIN
- 4. 雙FULL OUTER JOIN在MySQL
- 5. 在Sqlite3中執行FULL OUTER JOIN以獲得兩列的組合?
- 6. Mysql的模擬FULL OUTER JOIN
- 7. FULL OUTER與臨時表JOIN
- 8. FULL OUTER JOIN值條件
- 9. 如何在查詢上執行OUTER JOIN
- 10. 在FULL OUTER選擇非空列JOIN
- 11. FULL OUTER JOIN這是有點INNER
- 12. 多FULL OUTER JOIN的多個表
- 13. OLEDB 12.0是否支持FULL OUTER JOIN?
- 14. FULL OUTER JOIN將表與PostgreSQL合併
- 15. Redshift FULL OUTER JOIN不輸出NULL
- 16. 如何在MYSQL中使用INNER/OUTER JOIN
- 17. 如何在Linq中執行此SQL? (LEFT OUTER JOIN W /日期)
- 18. Postsgresql OUTER JOIN並不如預期運行
- 19. OUTER JOIN VS INNER JOIN
- 20. SQL Server:CROSS JOIN和FULL OUTER JOIN有什麼區別?
- 21. FULL OUTER JOIN拋出錯誤「包裹在括號中選擇」
- 22. 使用LEFT OUTER JOIN
- 23. 如何在兩個複雜的SQL查詢上執行OUTER JOIN?
- 24. SQL Full Outer加入
- 25. Oracle - MINUS運算符與OUTER JOIN的結果不同
- 26. 如何使用Like in left outer join
- 27. 如何在SQL Server中使用JOIN LIKE和AND運算符?
- 28. PSQL - 自然科學FULL OUTER JOIN或使用,如果共同的屬性爲NULL
- 29. 如何執行FULL JOIN Zend框架2的Zend \ Db的
- 30. LEFT OUTER JOIN使用LLBLGEN
你將不得不聯合起來2外的結果連接的查詢(一個爲A - > B和一個對於B - > A) –
你爲什麼會想要?使用顯式連接,這是首選的方法。隱式連接區域SQL反模式。 – HLGEM
你爲什麼要這麼做?只需使用'FULL OUTER JOIN'語法(強烈建議使用明確的ANSI樣式連接來強制推薦) –