自我们的网上商店推出以来已经有几个月了,我们仍在创建新的 bling 以使访问者更容易浏览目录。
目前我们正在尝试添加一个按产品规格过滤的过滤器。
假设下一个选项可用
记忆
- 8 GB
- 12GB
处理器
- 英特尔
- AMD A
- AMD E
获取所有相关产品 ID 的 SQL 目前如下所示:
SELECT `lu_specifications` . * , `app_products`.`id` AS product_id
FROM (
`lu_specifications`
)
LEFT OUTER JOIN `link_products_specifications` link_products_specifications ON `lu_specifications`.`id` = `link_products_specifications`.`specification_id`
LEFT OUTER JOIN `app_products` app_products ON `app_products`.`id` = `link_products_specifications`.`product_id`
LEFT OUTER JOIN `link_categories_products` product_link_categories_products ON `app_products`.`id` = `product_link_categories_products`.`product_id`
WHERE `product_link_categories_products`.`category_id` =160
AND (
`lu_specifications`.`id` = '60'
AND `link_products_specifications`.`pres_value` = '8 GB'
)
AND (
(
`lu_specifications`.`id` = '54'
AND `link_products_specifications`.`pres_value` = 'AMD A'
)
OR (
`lu_specifications`.`id` = '54'
AND `link_products_specifications`.`pres_value` = 'AMD E'
)
)
在此示例 SQL 中,访问者将选择过滤选项“8GB”、“AMD A”和“AMD E”。所以他想得到一个/具有(8 GB)和((AMD A)或(AMD E))的产品。这种方法正确吗?因为我们确信它应该返回 17 个产品,但是 SQL 没有返回任何内容,并且它不会产生任何错误。
有人可以指出我们正确的方向吗?:)