mysql 多级关联查询_多级树形结构和sql查询实现

本文介绍了如何在MySQL中使用SQL查询处理多级树形结构数据,通过创建nodelist表并插入测试数据,利用自定义函数getChild实现递归查询,获取与指定节点相关的所有节点。这种方式避免了多次数据库IO操作,提高了查询效率。
摘要由CSDN通过智能技术生成

文/michaelgbw

多级树形结构是一个应用很广泛的数据结构,程序设计过程中,我们常常用树形结构来表征某些数据的关联关系,如企业上下级部门、栏目结构、商品分类等等,通常而言,这些树状结构需要借助于数据库完成持久化。然而目前的各种基于关系的数据库,都是以二维表的形式记录存储数据信息,因此是不能直接将树形结构存入DBMS,设计合适的Schema及其对应的CRUD算法是实现关系型数据库中存储树形结构的关键。

我想在生活中树形结构应用广泛,我们先看几个实际的例子。

n6RfQn.png 多级评论

fyqAFf.png 多层隶属关系

那么问题来了,我们应该怎么设计和实现呢,首先显示DB端的结构,当然可以采用非关系数据库(nosql)如mogodb,这里我们还是只讨论传统意义上的关系型数据库mysql为例,由于关系型数据库的特点。一张表完全可以实现,在三范式的基础上多表采用关联即可。

CREATE TABLE nodelist(

id INT PRIMARY KEY,

nodecontent VARCHAR(100),

pid INT

);

我们插入几个测试数据进去

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值