我正在使用以下布局设置数据库:
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)
以上查询确实有效,但我确信在设置更多选项时有更简洁的方法。
感谢任何建议,即使数据库架构需要更改。
提前致谢
答案 0 :(得分:0)
使用,AND po.name IN('black','blue')