找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4747|回复: 3

SQL存储及查询无限级分类的数据库设计

[复制链接]

300

主题

35

回帖

1582

积分

管理员

积分
1582
发表于 2023-12-12 14:47:02 | 显示全部楼层 |阅读模式




select t1.name as lev1,t2.name as lev2,t3.name as lev3
from goods as t1
left join goods as t2 on t2.parent_id=t1.ID
left join goods as t3 on t3.parent_id=t2.ID
where t3.ID=16



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

300

主题

35

回帖

1582

积分

管理员

积分
1582
 楼主| 发表于 2023-12-12 14:48:06 | 显示全部楼层
USE [lj_tc]
GO

/****** Object:  Table [dbo].[goods]    Script Date: 12/12/2023 14:48:04 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[goods](
        [ID] [int] IDENTITY(1,1) NOT NULL,
        [name] [varchar](50) NOT NULL,
        [parent_id] [int] NOT NULL,
CONSTRAINT [PK_directory] PRIMARY KEY CLUSTERED
(
        [ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

300

主题

35

回帖

1582

积分

管理员

积分
1582
 楼主| 发表于 2023-12-13 10:11:39 | 显示全部楼层
select a.id,a.name,b.name,c.name,d.name from
(select id,name,parent_id from goods as t1 where parent_id = 0) a left JOIN
(select id,name,parent_id from goods as t1 where qx = 1  ) b on b.parent_id = a.id  left JOIN
(select id,name,parent_id from goods as t1 where qx = 2  ) c on c.parent_id = a.id  left JOIN
(select id,name,parent_id from goods as t1 where qx = 3  ) d on d.parent_id = a.id

300

主题

35

回帖

1582

积分

管理员

积分
1582
 楼主| 发表于 2023-12-13 10:12:01 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|久要宝盒 ( 皖ICP备18021237号 )

GMT+8, 2025-5-6 00:04 , Processed in 0.068335 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表