MySQL 基础之八:外连接
主要内容:
本篇主要讲外连接,外连接存在的意义,以及通过案例了解外连接。
外连接与内连接的区别:
已经有了内连接,为什么还要整个外连接呢?换句话说外连接存在的意义是什么?我们可以从外连接和内连接之间的区别进行理解。
内连接:在内连接中,两张表 A 和 B 没有主副之分,两张表是平等的。凡是表 A 和表 B 能够匹配上的记录会被查询出来。
外连接:当表 A 和表 B 进行外连接时,这个时候就分主表和副表了,用官方话说,分驱动表和被驱动表。在左连接中,左边的表是驱动表,右边的表是被驱动表。在右连接中,右边的表是驱动表,左边的是被驱动表。举个例子:假如 A 表有姓名,学号。B 表有学号,科目,分数,但是在 B 表中某个或者某几个学生没有考试,那当然就没有考试成绩了,对应的学号也没有在 B 表中。如果 A 表做为驱动表,B 表作为被驱动表构成左连接。这几个没考试的人在 B 表中就没有记录,但是 A 表中有学号啊,由于是外连接,B 表中即使没有记录,但是会以 NULL 补齐。现在明白外连接的意义所在了吧。
小贴士:左连接有右连接的写法,右连接也有对应的左连接的写法。
那现在就来几个案例来深入了解一下吧。
案例:
案例:查出所有员工对应的领导
复制代码
从查询结果看,员工名为 KING 的人,对应的领导是 NULL。因此我们是不是也可以推断出来 KING 就是老板啊。
上面是用左连接写的,那是不是用右连接写,也可以得出同样的查询结果。
复制代码
版权声明: 本文为 InfoQ 作者【打工人!】的原创文章。
原文链接:【http://xie.infoq.cn/article/02e51d0cc5b2fde080a63c118】。文章转载请联系作者。
评论