现在有两张表商品表商品ID   商品名称   商品类ID
1          宇宙        1
2          女孩        3-----------------------------------------
类表类ID    大类    大类名称  小类名称
 1                宇宙
 3        4        人        女人
------------------------------------------------
表结构是这样的。比较复杂。  类ID和商品类ID是关联的。但是类ID里有可能是大类ID。有可能是小类ID。所以比比较乱不知道该怎么查询大类对应多个小类。小类对应多个商品。但是有的类地下没有小类。直接是商品。那这个类就属于大类。现在我要分组大类。然后查出大类下的小类。在查出小类下的商品。
请问用sql怎么实现。
相当于一个树。一个节点下没有子节点了。但他也按节点显示- -!不知道改怎么分组查

解决方案 »

  1.   

    商品表 商品ID  商品名称  商品类ID 
    1          宇宙        1 
    2          女孩        3 ----------------------------------------- 
    类表 类ID    大类    大类名称  小类名称 
    1                宇宙 
    3        4        人        女人 
    ------------------------------------------------主要是查询类表关于商品表最后只要inner join 商品表 on 类id=商品id就行了那么关于查询类表 首先查询大类
    1.select distinct 类id from 类表  wher 大类 is null 别名 “大类表”
    2.select × from 类表 group by 大类表 
    3.inner join 商品表 on 类id=商品id 
      

  2.   

    建议提供更多的数据以供测试和描述你的需求。建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。仅从你目前的数据看。直接select *
    from 商品表 p,类表 c
    where p.商品类ID=c.类ID