mysql 商品属性_MySQL搜索产品及其属性

我有一个MySQL数据库,其中包含带有组/属性的产品/

我创建了一个数据样本

create table products (

id int(10),

title varchar(50)

);

create table attributes (

id int(10),

title varchar(50)

);

create table filters (

id int(10),

attribute_id int(10),

title varchar(50)

);

create table product_filters (

id int(10),

product_id int(10),

attribute_id int(10),

filter_id int(10)

);

#products

insert into products select '1', '1stphone';

insert into products select '2', '2ndphone';

#attributes

insert into attributes select '1', 'ram';

insert into attributes select '2', 'cpu';

insert into attributes select '3', 'hdd';

#filters

insert into filters select '1', '1','128MB';

insert into filters select '2', '1','256MB';

insert into filters select '3', '2','1GHz';

insert into filters select '4', '2','2GHz';

insert into filters select '5', '3','16GB';

insert into filters select '6', '3','32GB';

#product_filters

insert into product_filters select '1','1','1','2';

insert into product_filters select '2','1','2','4';

insert into product_filters select '3','1','3','6';

insert into product_filters select '4','2','1','1';

insert into product_filters select '5','2','2','3';

insert into product_filters select '6','2','3','5';

所以我需要搜索该产品(或产品)有128MB或256MB RAM和32GB硬盘

如果您看到此链接http://sqlfiddle.com/#!2/7d8a04/1,则可以看到我的查询

但我不知道为什么它返回0行.

SELECT DISTINCT products.*

FROM products

JOIN product_filters ON product_filters.product_id=products.id

# where_ram_is_128MB_OR_256MB # it works !!

where ( product_filters.attribute_id=1 and product_filters.filter_id in (1,2) )

# and_where_hdd_is_32GB # not_works !!

AND ( product_filters.attribute_id=3 and product_filters.filter_id in (6) )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值