Mysql表并联_SQL多表查询 表联结

一、表的加法

union

将表按照行加起来,如无特殊要求会自动删除重复数据

union all 保留全部的行

二、表的联结

表之间通过列产生关系,并联结在一起 jion联结

1.交叉联结 又称笛卡尔积 cross jion

表中的每一行分别与另一个表中的每一行联结起来

表1 m行 表2 n行 则交叉联结表有m*n行

2.内联结 inner jion

以查找出同时存在于两张表中的数据为准

3. 左联结 left join

以左表为主表,以左表的数据为主

4.右联结 right join

以右表为主,全部取出右表对应的数据

5.全联结 full join

返回左右两个表中所有行

能匹配的合并,不能匹配的用null填充

MySQL不支持全联结

若要求某张表的数据,即以某张表的数据为准,采用左联结/右联结;

要求以两张表的公共部分为准时,采用内联结

三、联结的业务问题

比如3张表联结 多个join两两联结

四、case表达式

条件判断函数

case when then

...

else

end

每次运行只返回一个结果

注意:

else子句可省略,但是养成好习惯

case表达式可用于任意位置

end不能省略

需要条件判断时,使用case 表达式

典型例子:自定义分组

group by用多个列来分组时,这几个列的值全部相同才算一组

因此,只有一一对应的列名才能多个列分组而没有额外影响

在需要分组时,select 里的列名只能是group by子句里的列名

五、总结

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值