有三张分类表
a 大类
b 中分类
c 小分类 
都是以id关联的。
同时商品表也有三个相应的field。现在因为有些商品是造成了中分类或子分类对应。但大类分为空的情况,
我想搜同属一个大分类的商品出来,怎么写这个语句呢

解决方案 »

  1.   


    declare @a nvarchar(50)--大类名参数
    --set @a =?select a.大类名,b. 中分类名,c.小分类
    from a
    left outer join b on b.大类id = a.大类id
    left outer join c on c.中分类id = b.中分类id
    where a.大类名 = @a
      

  2.   

    declare @a nvarchar(50)--大类名参数
    --set @a =?--没有大类
    if isnull(@a,'') =''
    begin
    select b. 中分类名,c.小分类名
    from b
    left outer join c on c.中分类id = b.中分类id
    where b.大类id is nullend
    else
    begin--有大类
    select a.大类名,b. 中分类名,c.小分类
    from a
    left outer join b on b.大类id = a.大类id
    left outer join c on c.中分类id = b.中分类id
    where a.大类名 = @a
    end
      

  3.   

    我是要以三个分类来搜商品表哦,-------------------------------------------------------
    a  大分类表
     id  
    name------------b 中分类表-----------------------------------------
    bid
    bname
    aid
    ------------c 小分类表-----------------------------------------
    cid 
    cname
    aid
    bid
    ----------------- 商品表 product   --------------------------------
    id
    productname
    aid   --对应大类id
    bid   --对应二类id
    cid   --对应小类id
    ........