Tai Nguyen
Tai Nguyen

Reputation: 1

How to optimize query in sql without using UNION

I have the query as:

SELECT i.id AS id
    FROM table_a i
    WHERE (i.cat_id IN (92, 224))
    GROUP BY id
    HAVING (COUNT(i.cat_id) = 2 AND SUM(i.cat_id) = 316)

    UNION
    (
        SELECT i.id AS id
        FROM table_a i
        WHERE (i.cat_id IN (92, 227))
        GROUP BY id
        HAVING (COUNT(i.cat_id) = 2 AND SUM(i.cat_id) = 319)
    )

How to optimize this query?

Upvotes: 0

Views: 50

Answers (1)

Mihai
Mihai

Reputation: 26784

SELECT i.id AS id
    FROM table_a i
    WHERE (i.cat_id IN (92, 224) OR i.cat_id IN (92, 227))
    GROUP BY id
    HAVING (COUNT(i.cat_id) = 2 
       AND (SUM(i.cat_id) = 316 OR SUM(i.cat_id) = 319 )

Upvotes: 1

Related Questions