我想做几个表,其关系如下:
我有三个记录:a,b,c
而三个记录下面又分别有几个子项:
如:a的记录下面有aa,ab,ac几个子项
b的记录下面有ba,bb,bc几个子项
c的记录下面有ca,cb,cc几个子项
如果我要查询,该用怎样的查询语句?
请问各位高手,这样的表怎么样做?
谢谢!!!
在线等!!!!
我有三个记录:a,b,c
而三个记录下面又分别有几个子项:
如:a的记录下面有aa,ab,ac几个子项
b的记录下面有ba,bb,bc几个子项
c的记录下面有ca,cb,cc几个子项
如果我要查询,该用怎样的查询语句?
请问各位高手,这样的表怎么样做?
谢谢!!!
在线等!!!!
另建一张表,里面存放着A,C,B的子项
并用主外键关联的方式关联起来!
declare @t table(id int,names varchar(10))
insert @t select 1,'a'
union all select 2,'b'
union all select 3,'c'
---从表
declare @t1 table(tid int,names varchar(10))
insert @t1 select 1,'aa'
union all select 1,'ab'
union all select 1,'ac'
union all select 2,'ba'
union all select 2,'bb'
union all select 2,'bc'
union all select 3,'ca'
union all select 3,'cb'
union all select 3,'cc'
------查询A中的子项
select A.names,B.names
from @t A inner join @t1 B
on A.id=B.tid
where A.names='a'
查询问题如下:
如果我既要显示表中的数据(这个表就是包含a,b,c记录的那个表),又要显示a的子项,怎么办??
谢谢!!!!
你的那个方法能实现我的功能;可是再请问一下,有没有更通用的代码,就是如果记录比较多的时候,那怎么办?
可以让A,B,C和子项一样结构,如下:项目名 父项目名 其它
A 0 ……
B 0 ……
C 0 ……
AA A ……
AB A ……
BA B ……
BB B ……
令A,B,C的父项目名为0或其它特殊字符就可以了。
想显示A和A的所有子项就用:
SELECT * FROM 此表 WHERE 项目名=A OR 父项目名=A;
方便、直接、清晰
identity