Oracle左右全連線總結
Oracle左右全連線總結-
--建立測試資料
create table a(id number);
create table b(id number);
insert into a values(1);
insert into a values(2);
insert into a values(3);
insert into b values(1);
insert into b values(2);
insert into b values(4);
commit;
--左:
--主流資料庫通用的方法
select * from a left join b on a.id=b.id;
--Oracle特有的方法
select * from a, b where a.id=b.id(+);
ID ID
---------- ----------
1 1
2 2
3
--右:
--主流資料庫通用的方法
select * from a right join b on a.id=b.id;
--Oracle特有的方法
select * from a, b where a.id(+)=b.id;
ID ID
---------- ----------
1 1
2 2
4
--內
--主流資料庫通用的方法
select * from a join b on a.id=b.id;
--where關聯
select * from a, b where a.id=b.id;
ID ID
---------- ----------
1 1
2 2
--全外
--主流資料庫通用的方法
select * from a full join b on a.id=b.id;
--Oracle特有的方法
select *
from a, b
where a.id = b.id(+)
union
select *
from a, b
where a.id(+) = b.id;
ID ID
---------- ----------
1 1
2 2
3
4
--完全,也叫交叉連線或者笛卡爾積
--主流資料庫通用的方法
select * from a,b;
--或者
select * from a cross join b;
ID ID
---------- ----------
1 1
1 2
1 4
2 1
2 2
2 4
3 1
3 2
3 4
連線無非是這幾個
--內連線和where相同
inner join <=>( 等價於) join
--左向外連線,返回左邊表所有符合條件的
left join <=> left outer join
--右向外連線,返回右邊表所有符合條件的
right join <=> right outer join
--完整外部連線,左向外連線和右向外連線的合集
full join <=> full outer join
--交叉連線,也稱笛卡兒積。返回左表中的每一行與右表中所有行的組合
cross join
--補充:
--左向外連線,返回左邊表所有符合條件的,
--注意這裡沒有第二個加號,會直接過濾掉資料,只顯示符合條件的記錄
select *
from a, b
where a.id = b.id(+)
and b.id = 2;
ID ID
---------- ----------
2 2
--左向外連線,返回左邊表所有符合條件的
--注意where上第二個加號,它的作用是修改右邊表記錄的顯示,例如如果b.id(+) = 2,顯示為2,否則顯示null
select *
from a, b
where a.id = b.id(+)
and b.id(+) = 2; 【 注:紅字的地方要保持一致,才能看到目標效果】
ID ID
---------- ----------
2 2
3
1
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-753094/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE會話連線程式三者總結Oracle會話線程
- 【經典】連線oracle的總結(關於tnsname和監聽)Oracle
- css 元素左右居中總結CSS
- cx_Oracle 連線 OracleOracle
- MYSQL學習筆記23: 多表查詢(自連線內連線+左右外連線)MySql筆記
- Servlet連線OracleServletOracle
- PHP 連線 OraclePHPOracle
- thinkphp連線OraclePHPOracle
- PHP 連線oraclePHPOracle
- Smack 開發總結(一)管理連線Mac
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- [20200711]關於左右連線的問題.txt
- Oracle:優化方法總結(關於連表查詢)Oracle優化
- 【很全很新】C3P0 連線池和 DBUtils 配合事務使用總結
- oracle 連線查詢Oracle
- DBA ORACLE連線操作Oracle
- 3.2.2 python連線oraclePythonOracle
- Oracle特性總結Oracle
- oracle 左錶連結Oracle
- ISP 連結總結
- VMware Workstation Pro各版本下載連結彙總(特全!!!)
- Oracle左外連線、右外連線、完全外連線以及(+)號用法Oracle
- Oracle連線Db2OracleDB2
- [Oracle-> MySQL] Oracle通過dblink連線MySQL--Oracle 19c連線到MySQL 5.7OracleMySql
- Oracle學習總結Oracle
- java操作Oracle 方式一 ( 連線-》操作-》斷開連線 )JavaOracle
- 【JDBC】java連線池模擬測試 連線oracleJDBCJavaOracle
- 【JDBC】使用OracleDataSource建立連線池用於連線OracleJDBCOracle
- 線性表(陣列、連結串列、佇列、棧)詳細總結陣列佇列
- Oracle 自動化運維-Python連線OracleOracle運維Python
- Oracle SQL Developer 連線資料庫總是顯示io錯誤OracleSQLDeveloper資料庫
- 配置Oracle DBlink連線MySQL庫OracleMySql
- PL/Plus本地連線oracle配置Oracle
- cx_Oracle.SessionPool 連線池OracleSession
- Python 連線 Oracle資料庫PythonOracle資料庫
- oracle連線查詢詳解Oracle
- Oracle 19C上線後可能出現的問題彙總(全)Oracle
- 連結串列基礎總結
- 全連線層的作用解析