我想用亚马逊,ebay或Souq等过滤系统进行搜索。
此表包含所有产品“go_products_cats_options”和此pco_option_id
IN(41,31,32,30)的所有值和键
是过滤器的关键,这个数字pco_answer_id
IN('312','250','253','240')是此键的值
我希望搜索此键和值不是用OR而是用AND 这是我的陈述,我该怎么办
SELECT
`go_products`.*,
`go_users`.`u_username`,
`go_users`.`u_id`
FROM
`go_products`
INNER JOIN `go_users` ON `go_users`.`u_id` = `go_products`.`product_store_id`
INNER JOIN `go_products_cats_options` ON `go_products_cats_options`.`pco_product_id` = `go_products`.`product_id`
WHERE
`go_users`.`u_is_active` = 1 AND `go_users`.`u_store_is_expire` = 0 AND `go_products`.`product_cat_id` IN('39') AND `product_active` = 1 AND(
`pco_option_id` IN(41, 31, 32, 30) AND `pco_answer_id` IN('312', '250', '253', '240')
)
HAVING
COUNT(*) > 4
ORDER BY
`product_id` ASC
LIMIT 40
当我使用不成功时
答案 0 :(得分:0)
您无法在没有分组的情况下准备声明。在拥有关键字之前需要分组依据。您可以使用:
SELECT
`go_products`.*,
`go_users`.`u_username`,
`go_users`.`u_id`
FROM
`go_products`
INNER JOIN `go_users` ON `go_users`.`u_id` = `go_products`.`product_store_id`
INNER JOIN `go_products_cats_options` ON `go_products_cats_options`.`pco_product_id` = `go_products`.`product_id`
WHERE
`go_users`.`u_is_active` = 1 AND `go_users`.`u_store_is_expire` = 0 AND `go_products`.`product_cat_id` IN('39') AND `product_active` = 1 AND(
`pco_option_id` IN(41, 31, 32, 30) AND `pco_answer_id` IN('312', '250', '253', '240')
)
GROUP BY u_username
HAVING
COUNT(*) > 4
ORDER BY
`product_id` ASC
LIMIT 40