我想做几个表,其关系如下:
我有三个记录:a,b,c
而三个记录下面又分别有几个子项:
如:a的记录下面有aa,ab,ac几个子项
    b的记录下面有ba,bb,bc几个子项
    c的记录下面有ca,cb,cc几个子项
如果我要查询,该用怎样的查询语句?
请问各位高手,这样的表怎么样做?
谢谢!!!
在线等!!!!

解决方案 »

  1.   

    表1中存有A,B,C,这张表做主表
    另建一张表,里面存放着A,C,B的子项
    并用主外键关联的方式关联起来!
      

  2.   

    --主表
    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'
      

  3.   

    先谢谢你们各位:
    查询问题如下:
    如果我既要显示表中的数据(这个表就是包含a,b,c记录的那个表),又要显示a的子项,怎么办??
    谢谢!!!!
      

  4.   

    to liangpei2008(我爱世界杯) :
    你的那个方法能实现我的功能;可是再请问一下,有没有更通用的代码,就是如果记录比较多的时候,那怎么办?
      

  5.   

    对数据库进行大量数据添加时一般都是用DTS工具或者语句从外部文件或者其它数据库中读取的。没有什么人会一条一条手动添加入库德
      

  6.   

    楼主想要在一个表里既存储ABC,又存储它们的子项吧。
    可以让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;
        方便、直接、清晰
      

  7.   

    自动增长吧 楼主
    identity