1、 INNER JOIN(内连接):
返回两个表中共有的记录,匹配的数据将会被选择出来。INNER JOIN是默认的连接方式,可以使用JOIN关键字来等效使用。
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
2、natural join(自然连接)
可以算是内连接的一种。
SELECT * FROM table1 natural JOIN table2;
自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将他们连接起来,并返回所有符合条件按的结果。相当于如下语句
SELECT * FROM table1 JOIN table2 ON table1.column = table2.column and table1.id=table2.id and table1.name=table1.name and ...;
这里我们并没有指定连接的条件,实际上oracle为我们自作主张的将,dave表中的id和name字段与bl表中的id和name字段进行了连接。也就是实际上相当于
3、 LEFT JOIN(左连接):
返回左表中所有记录,同时如果右表中没有匹配的数据则用NULL填充。LEFT JOIN的左表和右表不一定关联,即使重复也会全部保留左表的记录,所以可以用于查询某个表中所有的记录和与之匹配的记录。另外,LEFT JOIN也可以简写为LEFT OUTER JOIN。
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
4、RIGHT JOIN(右连接):
返回右表中所有记录,同时如果左表中没有匹配的数据则用NULL填充。RIGHT JOIN的左表和右表不一定关联,即使重复也会全部保留右表的记录,所以可以用于查询某个表中所有的记录和与之匹配的记录。另外,RIGHT JOIN也可以简写为RIGHT OUTER JOIN。
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
5、FULL JOIN(全连接):
返回两个表中所有的记录,如果两个表中没有匹配的数据则用NULL填充。FULL JOIN可以实现LEFT JOIN和RIGHT JOIN的效果。FULL JOIN也可以简写为FULL OUTER JOIN。
SELECT * FROM table1 FULL JOIN table2 ON table1.column = table2.column;