本文概述
外联接类似于等联接, 但它也从表中获取不匹配的行。根据Oracle 9i ANSI / ISO 1999标准, 它分为左外连接, 右外连接和完全外连接。
左外连接
左外联接返回在ON条件中指定的左(第一)表中的所有行, 仅返回满足联接条件的右(第二)表中的所有行。
句法
SELECT columns
FROM table1
LEFT [OUTER] JOIN table2
ON table1.column = table2.column;
左外联接的图像表示
例子
在此示例中, 我们对已创建的表”供应商”执行左外联接。和” order1″。
以下示例将返回表”供应商”中的所有记录。并且只有表” order1″中的那些记录?联接字段相等的地方。
执行此查询
SELECT suppliers.supplier_id, suppliers.supplier_name, order1.order_number
FROM suppliers
LEFT OUTER JOIN order1
ON suppliers.supplier_id = order1.supplier_id;
输出
右外连接
右外联接返回在ON条件中指定的右侧表中的所有行, 并且仅返回满足联接条件的其他表中的那些行。
句法
SELECT columns
FROM table1
RIGHT [OUTER] JOIN table2
ON table1.column = table2.column;
右外连接的图像表示
例子
在此示例中, 我们对已创建的表”供应商”执行正确的外联接。和” order1″。
下面的示例将返回order1表中的所有行, 并且仅返回满足连接条件的Suppliers表中的所有行。
执行此查询
SELECT order1.order_number, order1.city, suppliers.supplier_name
FROM suppliers
RIGHT OUTER JOIN order1
ON suppliers.supplier_id = order1.supplier_id;
输出
完全外联接
完全外联接返回左侧表和右侧表中的所有行。在不满足联接条件的地方放置NULL。
句法
SELECT columns
FROM table1
FULL [OUTER] JOIN table2
ON table1.column = table2.column;
完全外联接的图像表示
例子
在此示例中, 我们对已创建的表”供应商”执行完全外联接。和” order1″。
下面的示例将从”供应商”中返回所有行。表和” 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;
输出
评论前必须登录!
注册