什么是联接?
联接就是把两个表打包成一个新的表。(tableA join tableA)=tableC。然后,可以想操作一个表一样的操作打包后的表。
联接类型
有条件联接(内联接,外联接)
内联接:
内联接仅显示两个联接表中的匹配行的联接。要连接的两个表A和B具有同等的地位,为什么还有可能地位不同呢?请看外联接。
外联接:
甚至包括在联接表中没有相关行的行的联接。可以创建外联接的三个变化形式来指定所包括的不匹配行。
外连接包括(左外联接,右外联接,完全外联接)
其中左外联接,右外联接中AB两个表地位是不平等的。一个为主,一个为辅。例如:
表A
姓名 | 成绩 |
小王 | 50 |
小张 | 60 |
表B
姓名 | 处分 |
小王 | 记过 |
显然,处分情况不可能每个人都有。现在要显示一个学生的完整信息。就需要用外部联接。
select *
from
a
outer left join b
on
a.姓名=b.姓名
结果如下
姓名 | 成绩 | 处分 |
小王 | 50 | 记过 |
小张 | 60 |
这里表B就是表A的辅助表。有点夫唱妇随的味道。
无条件联接(交叉联接)