Oracle:左连接、右连接、全外连接、(+)号详解
在Oracle数据库中,左连接(Left Outer Join)、右连接(Right Outer Join)和全外连接(Full Outer Join)是三种用于结合两个或多个表的数据的关联查询操作。这些操作的主要区别在于如何处理那些在另一个表中没有相匹配行的行。
- 左连接(Left Outer Join): 返回左表的所有行,即使右表中没有匹配的行。右表中没有匹配的行将返回NULL。
SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;
- 右连接(Right Outer Join): 返回右表的所有行,即使左表中没有匹配的行。左表中没有匹配的行将返回NULL。
SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name = table2.column_name;
- 全外连接(Full Outer Join): 返回两表中的所有行,其中一边表中没有匹配的行将返回NULL。
SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
在Oracle中,也可以使用 (+)
符号来实现左连接和右连接,这是一种较老的语法。
- 左连接(使用 (+) ):
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name(+);
- 右连接(使用 (+) ):
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name(+) = table2.column_name;
注意:在Oracle中,(+)
只用于从语法上区分左连接和右连接,不能用于全外连接。
评论已关闭