关于树形结构的数据库

fstao 2024-12-23 00:10:46

数据库是sqlserver2012,以下是表t1的数据和字段:

 表t1有两个商品的数据结构:

15499的数据结构:

 15600的数据结构:

如果bs_product_id=15499,如何写sql语句,从t1表取出数据?显示数据如下:

 

如果 bs_product_id=15600,如何写sql语句,从t1表取出数据?显示数据如下:

 

...全文
210 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 版主 2024-12-23
  • 打赏
  • 举报
回复 1

--测试数据
if not object_id(N'Tempdb..#T') is null
    drop table #T
Go
Create table #T([bs_product_id] int,[parent_id] int,[grade] int,[id] int)
Insert #T
select 15499,NULL,1,23 union all
select 15500,23,2,24 union all
select 15503,23,2,25 union all
select 15501,24,3,26 union all
select 15502,24,3,27 union all
select 15600,NULL,1,28 union all
select 15601,28,2,29 union all
select 15602,28,2,30
Go
--测试数据结束
DECLARE @bs_product_id INT = 15499;--参数,传入不同的值
;WITH cte AS (
SELECT * FROM #T WHERE bs_product_id=@bs_product_id
UNION ALL
SELECT #T.* FROM #T JOIN cte ON cte.id=#T.parent_id
)
SELECT * FROM cte

img

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧