1

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);
0

1 Answer 1

1

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;
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.