有三张分类表
a 大类
b 中分类
c 小分类
都是以id关联的。
同时商品表也有三个相应的field。现在因为有些商品是造成了中分类或子分类对应。但大类分为空的情况,
我想搜同属一个大分类的商品出来,怎么写这个语句呢
a 大类
b 中分类
c 小分类
都是以id关联的。
同时商品表也有三个相应的field。现在因为有些商品是造成了中分类或子分类对应。但大类分为空的情况,
我想搜同属一个大分类的商品出来,怎么写这个语句呢
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
--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
a 大分类表
id
name------------b 中分类表-----------------------------------------
bid
bname
aid
------------c 小分类表-----------------------------------------
cid
cname
aid
bid
----------------- 商品表 product --------------------------------
id
productname
aid --对应大类id
bid --对应二类id
cid --对应小类id
........