接下来分享的有全外连接和交叉连接,在学习全外连接的时候我们会接触到之前学过的左连接和右连接,那么接下来我们先从全外连接开始然后再到交叉连接顺便再复习一下左连接和右连接。
首先在学习全外连接之前我们先了解一下什么是全外连接,全外连接就是当左表和右表中存在匹配项时,将返回所有的值。
依旧是熟悉的整张图,可能会有些看不清但是没关系我们将它放大。
这样就好看多了,既然表已经新建成功了那么接下来我们就开始实现他的功能了。就如同我们上面说的那样全外连接是当左表和右表存在匹配项的时候返回所有的行。
首先我们先将两张表全部查询出来,直接使用select * from som和select * from mem语句就好from后面接的是表的名称这点要注意了是名称不是别的。查出来是这样的
查询出来后我们再看其他的,将两张表连接起来使用FULL OUTER JOIN查询两张表中的数据。
以上是使用后查询出来的结果,有两个数据为空的数据行。
接下来我们来了解交叉连接,通过交叉连接我们可以连接两个或多个不相关的表。是不是感觉很有用啊!使用cross join将每个表的每一行连接起来也就是返回两个表中行的笛卡尔积。但是和inner join 和
Left join 不同,交叉连接不会在连接的表之间建立关系。
从这里可以看出cross join 从每一表中获取一行,然后为第二个表中的每一行创建一个新行,然后他就会对接下来的每一行执行相同的操作。这也就会为啥呢我们看到第二张表中的数据重复了两遍。
换一个也是一样的情况。