oracle外連線
內連線(inner join)、全連線(full join)、左連線(left join)、右連線(right join)
Oracle的左連線和右連線
PL-SQL中,左連線和右連線以如下方式來實現
檢視如下語句:
SELECT emp_name, dept_name FORM. Employee, Department WHERE Employee.emp_deptid(+) = Department.deptid
此SQL文使用了右連線,即“(+)”所在位置的另一側為連線的方向,右連線說明等號右側的所有記錄均會被顯示,
無論其在左側是否得到匹配,也就是說上例中無論會不會出現某個部門沒有一個員工的情況,這個部門的名字都會在查詢結果中出現。
反之:
SELECT emp_name, dept_name FORM. Employee, Department WHERE Employee.emp_deptid = Department.deptid(+)
則是左連線,無論這個員工有沒有一個能在Department表中得到匹配的部門號,這個員工的記錄都會被顯示
一般的相等連線:
select * from a, b where a.id = b.id;
這個就屬於內連線。
對於外連線:
Oracle中可以使用“(+) ”來表示,9i可以使用LEFT/RIGHT/FULL OUTER JOIN
LEFT OUTER JOIN:左外關聯
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
LEFT OUTER JOIN departments d
ON (e.department_id = d.department_id);
等價於
SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id=d.department_id(+)
結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄。
RIGHT OUTER JOIN:右外關聯
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);
等價於
SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id(+)=d.department_id
結果為:所有員工及對應部門的記錄,包括沒有任何員工的部門記錄。
FULL OUTER JOIN:全外關聯
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
FULL OUTER JOIN departments d
ON (e.department_id = d.department_id);
結果為:所有員工及對應部門的記錄,包括沒有對應部門編號department_id的員工記錄和沒有任何員工的部門記錄。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7478833/viewspace-374961/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle內連線、外連線、右外連線、全外連線小總結Oracle
- 【SQL】Oracle的內連線、左外連線、右外連線及全外連線SQLOracle
- Oracle左外連線、右外連線、完全外連線以及(+)號用法Oracle
- Oracle 左外連線、右外連線、全外連線小總結Oracle
- oracle 外連線的使用Oracle
- Oracle 表連線方式詳解(外連結、內連線、自連線)Oracle
- Oracle 內外連線 join 總結Oracle
- oracle sql內連線_左(右)連線_全外連線_幾種寫法OracleSQL
- 內連線、外連線
- SQL的四種連線:內連線 左外連線 右外連線 全連線SQL
- 一分鐘搞懂ORACLE 外連線Oracle
- 深入理解SQL的四種連線-左外連線、右外連線、內連線、全連線SQL
- sql 內連線和外連線SQL
- 外連線與連線順序
- 內連線、外連線總結
- SQL SERVER 自連線、外連線SQLServer
- 例項解析外連線 內連線 自連線 全連線
- MYSQL語法:左連線、右連線、內連線、全外連線MySql
- MySQL筆記3——內連線/外連線、多表連線MySql筆記
- python連線Oracle的外掛cx_Oracle安裝PythonOracle
- Oracle中的外連線簡單介紹(轉)Oracle
- sql內連結,外連線SQL
- mysql左外連線MySql
- sybase的外連線
- Oracle(+)連線與Join連線Oracle
- Oracle左連線,右連線Oracle
- sql和hql中join語句區別,以及hibernate中內連線,迫切內連線,左外連線,迫切左外連線,右外連線的區別(合集)...SQL
- ORACLE 半連線與反連線Oracle
- iOS wifi連線外設iOSWiFi
- mysql 外連線總結MySql
- 多表外連線的使用
- InfoSet中左外連線
- not in 用外連線實現
- 外連線(outer join)示例
- not exists改為外連線
- 資料庫外連線,自然連線,內連線,條件連線,等值連線關係及詳解資料庫
- 用實驗方法加深理解Oracle的外連線(left/right/full)和內連線(inner)Oracle
- 外連線轉換為內連線的情況