📅  最后修改于: 2020-11-15 04:12:06             🧑  作者: Mango
OUTER JOIN类似于等联接,但它也从表中获取不匹配的行。根据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;
输出量