Oracle 表连接(内连接、外连接(左连接、右连接)、隐式连接、表并集、表交集、表补集)
在Oracle中,可以使用不同的连接类型来结合多个表中的数据。以下是各种连接类型的简要说明和示例代码:
- 内连接(INNER JOIN):仅返回两个表中匹配的记录。
SELECT a.column1, b.column2
FROM tableA a
INNER JOIN tableB b ON a.common_field = b.common_field;
外连接:
- 左连接(LEFT JOIN):返回左表的所有记录,即使右表中没有匹配的记录。
SELECT a.column1, b.column2
FROM tableA a
LEFT JOIN tableB b ON a.common_field = b.common_field;
- 右连接(RIGHT JOIN):返回右表的所有记录,即使左表中没有匹配的记录。
SELECT a.column1, b.column2
FROM tableA a
RIGHT JOIN tableB b ON a.common_field = b.common_field;
- 隐式连接(IMPLICIT JOIN):不使用JOIN关键字,而是使用WHERE子句中的比较运算符。
SELECT a.column1, b.column2
FROM tableA a, tableB b
WHERE a.common_field = b.common_field;
- 表并集(UNION):返回两个或多个表中的所有不同的行。
SELECT column1 FROM tableA
UNION
SELECT column1 FROM tableB;
- 表交集(INTERSECT):返回两个或多个表中的所有相同的行。
SELECT column1 FROM tableA
INTERSECT
SELECT column1 FROM tableB;
- 表补(MINUS):返回存在于一个表中但不存在于另一个表中的行。
SELECT column1 FROM tableA
MINUS
SELECT column1 FROM tableB;
这些是Oracle中常见的表连接类型和相应的示例代码。
评论已关闭