SQL进阶-外连接的用法
外连接的分类:
- 左外连接
- 右外连接
- 全外连接
其中全外连接就是如果不满足连接条件的话,两个表中的元素都会保留下来。
由于SQL是以集合论为基础的语言,所以我们可以做以下操作进行集合运算:
交集:内连接实现,在SQL标准中,可以是使用intersect
并集:全外连接,SQL标准中是union
差集:外连接后取b列为null的行,或者可以通过not in 或者 not exist实现。
异或:先取差集,然后从A表把差集中的元素筛选掉。
通常情况下我们需要在做将数据库行转为列
的场景中可以使用:
- 外连接
- 标量子查询
- case表达式
当两个表如果其中的元素是一对一或者一对多
的关系的话:我们可以直接进行连接然后聚合求结果。
但是如果两个表的元素之间是多对多
的关系的话,就需要把某一个表先进行聚合
然后再连接。