sql连接汇总

所谓表连接,基于表格之间的相同字段,使表之间发生关联,让两个或多个表连接在一起。

基本的连接表达式为:

在这里插入图片描述
我们可以运用Join或者Where 将多个表连接起来,最常见的是inner join。

PS 在表连接时,可以通过别名的方式来简化我们的语句。
在这里插入图片描述
注意⚠️如果在多表中出现相同的列名,这需要使用表名作为来自该表的列名的前缀。

另外,若连接条件是无效或者省略,那就会发生笛卡尔积,所谓笛卡尔积就是让我们所有连接的表每一行都发生多条连接,例如:表一有a条记录,表二有b 条记录,则笛卡尔积就有a*b条记录,为了防止这样的情况发生,我们需要提供有效的条件。

内连接

它是通过使用运算符来进行表与表之间的列数据比较操作。

基础语法为:select * from table1 inner join table2 on table1.字段名=table2.字段名

其中inner join可以简写为join

在这里插入图片描述

上面的阴影部分就是通过内连接后得出来的表。即两表同时存在部分。

例子:表1和表2 通过内连接得出表3

在这里插入图片描述

select a.*,b.level from #table1 a join #table2 b on a.store=b.store

外连接

a.左外连接left join:

左外连接以子句中的左表为基础,连接右表,将呈现出左表所有字段,右表仅呈现出与左表共同行。
在这里插入图片描述

上面的阴影部分就是通过左外连接后得出来的表。

例子,表1和表2 通过左外连接得出表3:
在这里插入图片描述

select a.*,b.level from #table1 a left join #table2 b on a.store=b.store

b.右外连接right join:

右外连接以子句中的右表为基础,连接左表,将呈现出右表所有字段,左表仅呈现出与左表共同行。
在这里插入图片描述

上面的阴影部分就是通过右外连接后得出来的表。

例子,表1和表2 通过右外连接得出表3:
在这里插入图片描述

select a.*,b.level from #table1 a right join #table2 b on a.store=b.store

c.全外连接full join:

返回所有结果,包括未匹配成功的结果
在这里插入图片描述

上面的阴影部分就是通过全外连接后得出来的表。

例子,表1和表2 通过全外连接得出表3:

在这里插入图片描述

select a.*,b.level from #table1 a full join #table2 b on a.store=b.store

—————————————
版权声明:本文为CSDN博主「weixin_39819974」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39819974/article/details/111375072

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
树状图层级汇总是一种常见的数据展示方式,通常用于展示具有层级关系的数据信息。在SQL中实现树状图层级汇总,可以通过使用递归查询或使用常规的关联查询方法来实现。 如果采用递归查询的方式,可以使用WITH RECURSIVE关键字来定义一个递归查询的公共表表达式,然后在递归查询公共表表达式中使用自己引用自身的方式来实现层级关系的查询。 下面是一个简单的示例,假设有一张名为"tree"的表,其中包含id和parent_id两个字段,分别表示节点的唯一标识和上级节点的标识: WITH RECURSIVE recursive_tree (id, parent_id, level) AS ( SELECT id, parent_id, 0 FROM tree WHERE parent_id IS NULL -- 根节点 UNION ALL SELECT t.id, t.parent_id, rt.level + 1 FROM tree t JOIN recursive_tree rt ON t.parent_id = rt.id -- 关联查询 ) SELECT id, parent_id, level FROM recursive_tree ORDER BY level; -- 根据层级排序 以上的SQL代码会递归地查询所有的层级,并通过level字段来标识层级的关系,最后按照层级进行排序输出。 如果采用常规的关联查询方法,可以通过多次自连接同一张表来实现层级关系的查询。具体的做法是根据每个节点的parent_id字段进行关联查询,并将结果进行聚合操作,最终得到树状图层级汇总的结果。 以上是关于树状图层级汇总SQL的简要介绍,具体的实现方法还需要根据具体的数据结构来进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值