1、内连接查询
内连接是通过在查询中设置连接条件的方式,来移除查询结果集中某些数据行后的交叉连接。
select
列名1,列名n
from
表名1 inner
join
表名2
on
条件表达式
- 内连接是系统默认的表连接,所以在
from
子句后可以省略inner
关键字。 - 在
from
子句中可以在多个表之间连续使用inner join
或join
,如此可以同时实现多个表的内连接。
2、外连接查询
外连接先将连接的表分为基表和参考表,再以基表为依据返回满足和不满足条件的记录,outer
可省。
左外连接
select
列名1,列名n
from
表名1 left outer
join
表名2
on
条件表达式
用于接收该关键字左表(基表)的所有行,并用这些行与该关键字右表(参考表)中的行进行匹配,即匹配左表中的每一行及右表中符合条件的行,参考表没有的列取null。
右外连接
select
列名1,列名n
from
表名1 right outer
join
表名2
on
条件表达式
用于接收该关键字右表(基表)的所有行,并用这些行与该关键字左表(参考表)中的行进行匹配,即匹配右表中的每一行及右表中符合条件的行,参考表没有的列取null。
全连接
select
列名1,列名n
from
表名1 full outer
join
表名2
on
条件表达式
相当于左连接和右连接的合集
select
列名1,列名n
from
表名1 left outer
join
表名2
on
条件表达式
union
/union all
select
列名1,列名n
from
表名1 right outer
join
表名2
on
条件表达式
union
会去掉两个表中完全重复的行