产品有多个选项过滤器mysql和php

时间:2014-10-01 20:01:18

标签: php mysql

我正在使用以下布局设置数据库:

prodCategory(ID,name) prodsToCategory(cat_id,prod_id) 产品(ID,名称,desc等) prodsToOptions(prod_id,cat_id) prodOptions(ID,类型,名称)

我正在寻找最有效的mysql查询来加入表格,只返回选择了哪些选项的产品。

我目前有:

  SELECT
    p.ID,
    p.name,
    p.description,
    p.code,
    po.name
  FROM
    Products p
    LEFT OUTER JOIN prodsToCategory pc ON p.ID = pc.product_id
    LEFT OUTER JOIN prodsToOptions pto ON p.ID = pto.product_id
    LEFT OUTER JOIN prodOptions po ON pto.option_id = po.ID
  WHERE   p.active = '1'
  AND     pc.category_id = '1'
  AND     (po.name = 'black' OR po.name = 'blue')
  GROUP BY p.ID

网址看起来像这样:

www.test.com/cars?options=black-blue-manual etc(张贴于ajax)

以上查询确实有效,但我确信在设置更多选项时有更简洁的方法。

感谢任何建议,即使数据库架构需要更改。

提前致谢

1 个答案:

答案 0 :(得分:0)

使用,AND po.name IN('black','blue')