下午写完了上一篇文章,晚上就开始做牛客的SQL题啦,然后发现少少的十题就用到了好几次多表连接,case在实际分析过程中也非常常用,所以我打算单独把多表查询和case拉出来写一篇文章。
文章目录:
- 表的加法
- 表的联结
- 联结案例
- case表达式
一、表的加法
表与表相加最简单的方法就是使用union/union all这两个关键字,其中union会在求并集的时候去除完全一致的记录行,而union all则会保留所有的行。
例如:新建一个course1表,分别使用union/union all将其与原有course表合并
先看course1:
![72dc39efd5f34683039bdf844f50d5cc.png](https://img-blog.csdnimg.cn/img_convert/72dc39efd5f34683039bdf844f50d5cc.png)
course:
![350f00372d580c82092ff0c4e47bc4bc.png](https://img-blog.csdnimg.cn/img_convert/350f00372d580c82092ff0c4e47bc4bc.png)
union:
![2a014a92f59b8c90e35bf3ac47bfb3a9.png](https://img-blog.csdnimg.cn/img_convert/2a014a92f59b8c90e35bf3ac47bfb3a9.png)
union all:
![3221d92dca25f81f19afa85aab527190.png](https://img-blog.csdnimg.cn/img_convert/3221d92dca25f81f19afa85aab527190.png)
但是前文说的"重复",是只看主键,还是一行里所有的字段都看呢?
我将course1里 "0001 语文 0002"暂时改成了"0001 语 0002",执行同样的union语句: