我有一个产品表, 一个分类表。 一个产品可以有多个分类。
比如:产品A 有分类1(置顶),分类2,分类3.这三个分类。
产品B 有分类1,分类2(置顶),分类3.这三个分类。
分类有置顶的属性,查询的产品的时候,按分类查询,如果按分类1查询,则产品A排最前面,因为产品A属于分类1而且是置顶的,产品B排后面。
如果按分类2查询则产品B排最前面,因为产品B属性分类2是置顶的,产品A则排后面。
这个表怎么设计?查询的时候怎么查?
C# SQL 产品有多个分类 分类有属性
答案:2 悬赏:10 手机版
解决时间 2021-01-25 09:12
- 提问者网友:暗中人
- 2021-01-24 13:50
最佳答案
- 五星知识达人网友:街头电车
- 2021-01-24 15:17
产品和分类是多对多关系,所以用三张表:一张产品表,一张分类表,一张关联表。
其中关联表包括三个字段:(产品ID,分类ID,权重值)。权重为1表示置顶,为0表示不置顶。
你问题中的关联关系在关联表中表示为:
产品ID 分类ID 权重值
A 1 1
A 2 0
A 3 0
B 1 0
B 2 1
B 3 0
这样查询时,直接
select * from 关联表 where 分类ID=1 order by 权重值
其中关联表包括三个字段:(产品ID,分类ID,权重值)。权重为1表示置顶,为0表示不置顶。
你问题中的关联关系在关联表中表示为:
产品ID 分类ID 权重值
A 1 1
A 2 0
A 3 0
B 1 0
B 2 1
B 3 0
这样查询时,直接
select * from 关联表 where 分类ID=1 order by 权重值
全部回答
- 1楼网友:轮獄道
- 2021-01-24 16:28
select drugname ,sum(if drugkind = 0 then 1 else 0 endif) drugkind0, sum(if drugkind = 0 then 0 else 1 endif) drugkind1
from 表
group by drugname
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯