mysql:选择查询不同的列的多个条件

时间:2018-01-01 11:06:26

标签: php mysql codeigniter

我想用亚马逊,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

当我使用不成功时

1 个答案:

答案 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
相关问题