有表结构如下:
主表:记录具体的数据,ID为主键,category与从表之category关联
id int identity
category nvarchar(50) nullable
从表:记录数据分类,category是主键,parent是上级category,自关联到category,顶级category值为空,root为根节点,不能为空,自关联到category,根节点的root为自身category
category nvarchar(50) primary
parent nvarchar(50) nullable
root nvarchar(50) not null
关系表:主表与从表的关联,id是主表之id,category是从表之category,id与category为联合主键
id int
category
查询需求,对于提供的任何一个category,能在主表中查询出所有的数据,这些数据的特征是要么category是有效的关联,要么数据的category是指定category的上级之一。
感谢!
楼主既然主表有与从表的关联为何还要关系表呢
从表category为主键顶级值怎能为空
你给的查询需求说的有点模糊
不过根据理解还是先给出一段代码
select * from
[主表] a,[从表] b,[关联表] c
where a.id=c.id and b.category=c.category
and (a.category=[参数category] or a.category in
(select category from [从表] where parent=[参数category]))