我目前的查询有问题,我无法弄清楚最后一步以使其正常工作。问题是我的网站上有一个过滤器选项,它使访问者可以过滤特定设置。
到目前为止我的查询是
SELECT DISTINCT `spt`.`title`
FROM `shop_product_specs` as `sps` JOIN
`shop_product_texts` as `spt`
ON `spt`.`product_id` = `sps`.`product_id`
WHERE `cat_spec_id` IN (2, 3) AND (`value` IN ("1200", "1400")) AND (`value` IN ("A", "A+"))
我想要完成的是,当我执行查询时,值字段匹配多个值。
因此,例如,我想要一个 cat_spec_id 为 2 且值为 1200 或 1400 但也匹配 cat_spec_id 为 3 且值为“A”或“A+”的产品。
查询的主要问题是它是同一个字段,那么这甚至可能吗?
这是我的结构
CREATE TABLE IF NOT EXISTS `shop_product_specs` (
`product_spec_id` int(11) NOT NULL AUTO_INCREMENT,
`product_id` int(11) NOT NULL,
`cat_spec_id` int(11) NOT NULL,
`value` varchar(50) NOT NULL,
PRIMARY KEY (`product_spec_id`),
KEY `product_id` (`product_id`),
KEY `cat_spec_id` (`cat_spec_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=312 ;