通过 LEFT JOIN 操作可以创建一个左外部联接。左外部联接包含两个表中第一个(左)表中的所有记录,即使在第二个(右)表中没有匹配的记录值。
通过 RIGHT JOIN 操作可以创建一个右外部联接。右外部联接包含两个表中第二个(右)表中的所有记录,即使在第一个(左)表中没有匹配的记录值。
通过 INNER JOIN 操作可以创建一个内联接。内联接返回两个表中联结字段相等的记录值。
注:LEFT JOIN 或 RIGHT JOIN 可以嵌套到 INNER JOIN 语句中,但是 INNER JOIN 语句不能嵌套到 LEFT JOIN 或 RIGHT JOIN 语句中。
在oracle中各种联结的等价替换
1. 内连接
select A.*, B.* from A,B where A.id = B.id
select A.*, B.* from A inner join B on A.id = B.id
2. 左外连接
select * from A, B where A.id = B.id(+)
select * from A left join B on A.id = B.id
3. 右外连接
select * from A, B where A.id = B.id(+)
select * from A right join B on A.id(+) = B.id
也就是说在oracle中+号放在=右边相当于左连接,而+号放在=左边相当于右连接