关于商品属性和商品检索的SQL,大家帮忙看怎么写sql比较好。


长话短说:我有四张表,一张是goods,存储商品信息 包含 goods_id,goods_name,cat_id;商品ID,名称,分类ID,第二章是goods_attr,包含 goods_id,attr_id;关联商品和属性值
第三张是属性表,spec 包含 spec_id,spec_name,cat_id,代表属性类目,属性名称,所属分类
第四章是属性值表,attr_id,attr_value,spec_id。

现在要做的是比如我要查询属性值有1,2,3,分类是1000的商品列表。
其中goods_attr是一个id一行
goods_id attr_id
1000 1
1000 2
1000 3
1001 2
1002 1

怎么写SQL会比较好,我写了2个都不怎么样。



相关链接

sql

龍印印Ryin 10 years, 9 months ago

先根据分类查出所有商品,然后用exists子查询去过滤属性值有1,2,3的商品。不过具体问题要具体分析,要看你的sql是用来干什么用的,用在什么情景下。

桃李不成蹊 answered 10 years, 9 months ago

你这个是ecshop的数据结构吧。

   
  SELECT * FROM `ecs_goods`
  
left JOIN `ecs_goods_attr`
ON ecs_goods.goods_id = ecs_goods_attr.goods_id
where `ecs_goods`.cat_id = 1000 and spec_id = 你的值 and 其他条件

大概就是这样吧

Liuxus answered 10 years, 9 months ago

Your Answer