sql查询的无限分类查询的设计
来源:互联网 发布:推广软件破解版 编辑:程序博客网 时间:2024/06/06 06:55
最近在找一次sql查询的无限分类查询的设计,网上找了一下这个数据表的设计很有特色,
不用递归,依靠个简单SQL语句就能列出菜单,看看这个数据表怎么设计的,并对下面的数据表结构的查询进行分析.
数据库字段大概如下:
-----------------------------------------------------------------------------------
id 编号
fid 父分类编号
name 分类名
path 分类路径,以 id 为节点,组成类似 ,1,2,3,4, 这样的字符串
----------------------------------------------------------------------------------
可以假设有如下的数据
id fid name path
----------------------------------------------------
1 0 分类1 ,1,
2 0 分类2 ,2,
3 1 分类1-1 ,1,3,
4 1 分类1-2 ,1,4,
5 2 分类2-1 ,2,5,
6 4 分类1-2-1 ,1,4,6,
----------------------------------------------------
查询分类2底下的所有分类
============================底下是测试数据=============================
--添加分类表
create table tab
(
id int,
fid int,
name varchar(100),
path varchar(100)
)
go
INSERT INTO [tab]([id],[fid],[name],[path])VALUES(1,0,'分类1',',1,')
INSERT INTO [tab]([id],[fid],[name],[path])VALUES(2,0,'分类2',',2,')
INSERT INTO [tab]([id],[fid],[name],[path])VALUES(3,0,'分类3',',3,')
INSERT INTO [tab]([id],[fid],[name],[path])VALUES(4,2,'分类4-2',',2,4,')
INSERT INTO [tab]([id],[fid],[name],[path])VALUES(5,2,'分类5-2',',2,5,')
INSERT INTO [tab]([id],[fid],[name],[path])VALUES(6,1,'分类1-1',',6,1,')
INSERT INTO [tab]([id],[fid],[name],[path])VALUES(7,4,'分类7-4-2',',7,4,2,')
INSERT INTO [tab]([id],[fid],[name],[path])VALUES(8,5,'分类8-5-2',',8,5,2,')
INSERT INTO [tab]([id],[fid],[name],[path])VALUES(9,7,'分类9-7-4-2',',9,7,4,2,')
go
select * from tab where charindex(',2,',path)>0
go
--添加文章表
create table article
(
aid int,
id int,
aname varchar(100),
)
go
INSERT INTO [article]([aid],[id],[aname])VALUES(1,1,'1这是名称1111111111111111111')
INSERT INTO [article]([aid],[id],[aname])VALUES(1,4,'4这是名称444444444444444444444444')
INSERT INTO [article]([aid],[id],[aname])VALUES(1,7,'7这是名称777777777777777777777777')
INSERT INTO [article]([aid],[id],[aname])VALUES(1,9,'9这是名称999999999999999999999999')
INSERT INTO [article]([aid],[id],[aname])VALUES(1,4,'4这是名称44444444444444444444')
INSERT INTO [article]([aid],[id],[aname])VALUES(1,9,'4这是名称999999999999999999999999')
go
select * from article inner join tab on tab.id=article.id where charindex(',2,',path)>0
go
drop table tab
drop table article
- sql查询的无限分类查询的设计
- SQL查询包括本级分类的无限级分类列表
- MySQL无限分类的数据表设计以及各种查询
- MySQL无限分类的数据表设计以及各种查询
- PHP递归查询的无限级分类
- 无限级分类查询子类SQL
- SQL分类查询的记录
- 无限分类子查询
- 一次查询完成基于“父id"的无限分类
- 无限极分类这个是不用递归查询的
- 一个查询分类的SQL题
- SQL-查询的分类及使用
- 关于SQL Server下无限多级别分类查询解决办法
- 关于SQL Server下无限多级别分类查询解决办法
- Yii 查询无限极分类
- thinkphp无限递归查询分类
- 子查询的分类
- 无限级分类查询一个栏目下的所有子栏目
- spring下连接池比较
- javascript 基本功能框架
- .NET Action Func Lambda 收藏 [转]
- 设为首页加入收藏等
- Hello Kitty & 多摩中心
- sql查询的无限分类查询的设计
- 一种User Mode下访问物理内存及Kernel Space的简单实现
- JPA 事务管理
- C#动静结合编程之一: 接口和委托的约束强度 [转]
- Ubuntu下CodeBlocks控制台程序中文显示乱码解决问题
- .Net 反射技术
- ASP.NET程序中常用代码汇总
- 人生
- 【翻译】WorkFlow从入门到精通(第一章):WF简介