一.内连接
根据指定的连接条件进行连接查询,因此满足连接条件的数据才会出现在结果集。
两个表进行内连接查询时,先找到表1的第一条记录,然后从头到尾扫描表2,将符合连接条件的记录与表1第一条记录连接成结果;
当表2扫描一遍后,再从表1的第二条记录开始,从头到尾扫描表2,将符合连接条件的与表1第二条记录连接成结果…
先创建两张表。表1为TEST,表2为TEST_NEW。具体数据如下。最后一列(ROWID)可以忽略不计。
语法:
select * from 表1 inner join 表2 on 条件
示例:
select * from TEST t inner join TEST_NEW p on t.sfc=p.sfc
这样就将两张表的数据按照条件查询出来了。效果如下图:
当然,内连接还有另一种简单写法:
语法:select * from 表1,表2 where 条件
示例 :select * from TEST t,TEST_NEW p where t.sfc=p.sfc
二、外连接
外连接又分为左外连接和右外连接。下面分别来讲这两种外连接。
1.左外连接
在内连接基础上,将连接操作符左侧表不符合连接条件的记录加入结果集中,右侧表则用null填充。
语法:select * from 表1 left join 表2 on 条件
示例:select * from TEST t left join TEST_NEW p on t.sfc=p.sfc
效果:
不管是否符合条件,左表数据全部显示,右表数据根据条件显示。不满足条件的地方填充空。
2.右连接
右连接与左连接差不多,只是一个左一个右。右连接是显示右表所有数据,左表数据按条件显示,不满足的用空填充。
直接给示例:select * from TEST t right join TEST_NEW p on p.sfc=t.sfc
效果图:
因为表2只有两条数据,且表1也有两条数据满足条件,所有没有填充空。