MUHSIN MOHAMED PC
MUHSIN MOHAMED PC

Reputation: 427

Multiple conditional check with multiple column in same row Mysql

I want to select data from the below table as per matching of two columns with multiple conditional checks.

enter image description here

I want to check conditions like the following.

When product_category_variants_id = 1 and product_category_variants_value_id = 2 and again product_category_variants_id = 2 and product_category_variants_value_id = 5. Then I need to get out put 8,7 and 6.

I tried the following MySQL Query to archive the above result.

SELECT DISTINCT `product_id` FROM `product_variants` WHERE (`product_category_variants_id` = 1 AND `product_category_variants_values_id` = 2) AND (`product_category_variants_id` = 2 AND `product_category_variants_values_id` = 5);

Upvotes: 1

Views: 32

Answers (1)

Tim Biegeleisen
Tim Biegeleisen

Reputation: 521249

You need an aggregation query here, as the two conditions in your WHERE clause can never simultaneously be true for any given record.

SELECT product_id
FROM product_variants
GROUP BY product_id
HAVING SUM(product_category_variants_id = 1 AND product_category_variants_values_id = 2) > 0 AND
       SUM(product_category_variants_id = 2 AND product_category_variants_values_id = 5) > 0;

Upvotes: 1

Related Questions