我正在设置一个具有以下布局的数据库:
产品类别(ID、名称) prodsToCategory (cat_id, prod_id) 产品(ID、名称、描述等) 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 等(使用 ajax 发布)
上面的查询确实有效,但我确信当设置更多选项时有一种更简洁的方法。
即使数据库架构需要更改,我们也会感激地收到任何建议。
提前致谢
最佳答案
使用,AND po.name IN('black','blue')
关于php - 具有多个选项过滤器 mysql 和 php 的产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26149581/