我有两个表:'类别'和'产品'。在类别I中,我有catid
和cat name
。在产品表格中,我有item-id
,item-name
,catid
。
我需要做的是显示一个包含item name
和category name
的结果。但类别名称将是多个。因此,一个产品可以有多个类别。
答案 0 :(得分:4)
你可能想要创建三个表,因为连接表允许每一行在另一个表中有多行对应:
Category : catid catname
Product : itemid itemname
CategoryProduct : catid itemid
因此,产品可以包含0个,1个或更多类别。
连接表的示例内容,对于具有相同两个类别的两个产品:
catid itemid in CategoryProduct
1 3
1 4
2 3
2 4
答案 1 :(得分:2)
如果您的架构在产品表中有类别ID,那么不,一个产品不能有多个类别。如果您有另一个M:N表来将产品链接到类别,则应更新您的问题。
答案 2 :(得分:2)
回复你的评论:
产品表的类别ID 就像2,3,4所以1产品可以拥有 多个类别
如果您被允许更改表格结构,请务必遵循KLE的建议。这是理智和可维护的方法。
如果您无法更改表格结构,可以使用以下方式查询类别:
select *
from product p
inner join category c
on ',' + p.catid + ','
like '%,' + cast(c.catid as varchar) + ',%'