Mysql查询满足多个类别的产品列表

来源:互联网 发布:手机淘宝新手怎么拿货 编辑:程序博客网 时间:2024/05/01 12:10

问题:

像淘宝中搜索满足多个条件的产品列表

举例:

有个产品表product_page:

id产品字段...1产品字段内容...2产品字段内容...

有个产品类别表property_page:(其中,a、b属于1类,c、d属于2类,e、f属于3类)

idtypetypeinstance11a21b32c42d53e63f

产品与类别关系表product_property:(其中,product_id是product_page的id,property_id是property_page的id)

idproduct_idproperty_id111221314442515

问题1,查询所有带有1类中的a属性的产品:

SQL查询:(先查询a属性的类别id是1)

SELECT * FROM product_page where id in (select p.product_id from product_property p where p.property_id=1) 

问题2,查询所有同时满足属于a属性和d属性的产品:

SQL查询:(先查询a属性的类别id是1,c属性的类别id是3)

SELECT * FROM product_page where id in (select p.product_id from (product_property p,(select product_id,property_id from product_property) p2 ) where p.property_id=1 and p2.property_id=3 and  p.product_id=p2.product_id)

问题3,查询所有同时满足属于a属性和d属性和e属性的产品:

SQL查询:(先查询a属性的类别id是1,c属性的类别id是3,e属性的类别id是5)

SELECT * FROM product_page where id in (select p.product_id from (product_property p,(select product_id,property_id from product_property) p2,(select product_id,property_id from product_property) p3 )where p.property_id=1 and p2.property_id=3 and p3.property_id=5 and p.product_id=p2.product_id and p2.product_id=p3.product_id)

示例图片:




0 0
原创粉丝点击