SELECT a.code1, a.code2, a.code3 FROM cub_test1 a WHERE (a.code1, a.code2) IN (SELECT b.code1,b.code2 FROM cub_test2 b WHERE b.code1 = '1' AND b.code3 = 'code3_test' ) |
3-2.CUBRID_EXISTS 다중 컬럼 처리
SELECT a.code1, a.code2, a.code3 FROM cub_test1 a WHERE EXISTS (SELECT b.code1,b.code2 FROM cub_test2 b WHERE b.code1 = '1' AND b.code3 = 'code3_test' AND a.code1 = b.code1 AND a.code2 = b.code2 ) |
3-3.CUBRID_인라인뷰 다중컬럼 처리
SELECT a.code1, a.code2, a.code3 FROM cub_test1 a, (SELECT DISTINCT b.code1,b.code2 FROM cub_test2 b WHERE b.code1 = '1' AND b.code3 = 'code3_test' ) c WHERE a.code1 = c.code1 AND a.code2 = c.code2 |
일반적으로 IN 오퍼레이션 안쪽에 SUB QUERY가 데이터가 적을 경우가 많지만,
SUB QUERY의 데이터가 MAIN QUERY보다 많을 경우에는 EXISTS 사용이 효율적입니다.
테스트 스키마로 볼때 데이터 양이 cub_test1 > cub_test2 경우 JOIN 방법을
cub_test1 < cub_test2 경우 'exists' 오퍼레이션을 사용하면 효율적입니다.