在Oracle中,JOIN查询一般分为内连接查询(inner join)和外连接查询(outer join)
外连接查询又分为:左外连接查询(left out join),右外连接查询(right outer join)和全连接查询(full outer join)
下面举例说明:
有两张表TESTA和TESTB如下:
1.内连接查询(inner join)
内关联查询就是我们通常使用的等于查询,SQL如下;
SELECT * FROM TESTA A, TESTB B WHERE A.FILED1 = B.FILED1;
查询出来的视图如下:
2. 左外连接查询(left out join或者left join)
左外关联查询就是在等于查询的基础上再加上主表(左表)其余的记录,SQL如下:
SELECT * FROM TESTA A LEFT JOIN TESTB B ON a.filed1 = b.filed1;
左连接查询还有一种写法:
SELECT * FROM TESTA A, TESTB B WHERE A.FILED1 = B.FILED1(+);
查询出来的视图如下:
3.右外连接查询(right outer join或right join)
右关联查询就是在等于查询的基础上加上右表其余的记录,SQL如下:
SELECT * FROM TESTA A RIGHT JOIN TESTB B ON a.filed1 = b.filed1;
右关联查询还有一种写法,SQL如下:
SELECT * FROM TESTA A, TESTB B WHERE A.FILED1(+) = B.FILED1;
查询出来的视图如下:
4.全连接查询(full outer join或者full join)
全关联查询是等于查询加上左表和右表的其余记录,SQL如下:
SELECT * FROM TESTA A FULL JOIN TESTB B ON a.filed1 = b.filed1;
查询出来的视图如下:
针对以上4中join连接查询,比较常用的是内连接和左连接。