Oracle Outer Join外连接
外连接类似于 equijoin,但它也从表中获取不匹配的行。它按 Oracle 9i ANSI/ISO 1999 标准分为左外连接、右外连接和全外连接。
一、Oracle Left Outer Join左外连接
Left Outer Join 左外连接返回在 ON 条件中指定的左(第一个)表中的所有行,并且只返回右(第二个)表中满足连接条件的那些行。
语法:
SELECT columns
FROM table1
LEFT [OUTER] JOIN table2
ON table1.column = table2.column;
示例:
在这个例子中,我们正在对已经创建的表执行左外连接:suppliers表和order1表。
以下示例将返回表 suppliers表 中的所有记录。并且只有表中的那些记录order1表连接字段相等的地方。
SELECT suppliers.supplier_id, suppliers.supplier_name, order1.order_number
FROM suppliers
LEFT OUTER JOIN order1
ON suppliers.supplier_id = order1.supplier_id;
输出结果为:
二、Oracle Right Outer Join右外连接
Right Outer Join 返回 ON 条件中指定的右侧表中的所有行,并且仅返回满足连接条件的另一个表中的那些行。
SELECT columns
FROM table1
RIGHT [OUTER] JOIN table2
ON table1.column = table2.column;
示例:
在这个例子中,我们正在对已经创建的表执行右外连接:suppliers表和order1表
以下示例将返回 order1 表中的所有行,并且仅返回符合连接条件的供应商表中的那些行。
SELECT order1.order_number, order1.city, suppliers.supplier_name
FROM suppliers
RIGHT OUTER JOIN order1
ON suppliers.supplier_id = order1.supplier_id;
输出结果为:
三、Oracle Full Outer Join全连接
Full Outer Join 返回左侧表和右侧表中的所有行。它在不满足连接条件的地方放置 NULL。
语法:
SELECT columns
FROM table1
FULL [OUTER] JOIN table2
ON table1.column = table2.column;
示例:
在这个例子中,我们正在对已经创建的表执行完全外连接:suppliers表和order1表
以下示例将返回来自 suppliers表 的所有行 表和来自 order1表 的所有行 表,只要不满足连接条件,它就会放置 NULL 值。
SELECT suppliers.supplier_id, suppliers.supplier_name, order1.order_number
FROM suppliers
FULL OUTER JOIN order1
ON suppliers.supplier_id = order1.supplier_id;
输出结果为:
热门文章
优秀文章