I have three tables that I need to JOIN
to get values from two columns.
These columns are GRN_STATUS
and STATUS
I have written some SQL that achives the desired result but I've been advised that using IN
is very inefficient and that I should use EXISTS
instead.
I'm just wondering is this true in my situation? and what would a solution using EXISTS
instead of IN
look like?
SQL:
SELECT c.GRN_STATUS, a.STATUS
FROM
TableA a
INNER JOIN
TableB b
ON a.ORD_NO = b.ORD_NO
AND a.COMPANY_ID = b.COMPANY_ID
INNER JOIN
TableC c
ON b.GRN_NO = c.GRN_NO
AND b.COMPANY_ID = c.COMPANY_ID
AND a.STATUS IN ( 'B', 'C', 'D', 'E' )
AND c.GRN_STATUS = 'A';