728x90

안시 쿼리란 From절에서 조인을 하며 조인조건을 ON 으로 명시해주어 가독성이 좋은 쿼리다. 조인되는 테이블이 많고 조건이 많을 수록 쿼리의 가독성이 떨어지는데 안시쿼리를 사용하면 From절과 Where절을 각각 한 눈에 볼 수 있다. 특히 조인되는 컬럼과 조회 조건 컬럼을 따로 확인할 수 있어서 편하다. 단, 띄어쓰기나 공백을 활용하여 잘 정리해주어야 한다. 아니면 더 보기 힘들어 질 수 있다.정리 안되면 모든 쿼리가 보기 힘들다..


예시1)

TABLE_A와 TABLE_B가 있고 각 테이블에는 col_a, col_b 라는 컬럼이 있는데 조인 조건은 col_a를 쓴다고 가정하자.

SELECT 
    * 
FROM 
    TABLE_A A, 
    TABLE_B B
WHERE 
    A.col_a = B.col_a

-- ANSI
SELECT 
    *
FROM 
    TABLE_A A 
    INNER JOIN TABLE_B B ON A.col_a = B.col_a

 

예시2)

실제로 사용되는 쿼리는 예시1처럼 단순하지 않다. 약간 더 복잡하게 해보자.

똑같은 조건으로 A, B, C, D, E 까지 있다면? 그리고 col_b 가 "b" 인 값을 조회하고 싶다면? 

SELECT 
    * 
FROM 
    TABLE_A A
    , TABLE_B B
    , TABLE_C C
    , TABLE_D D
    , TABLE_E E
WHERE 
    A.col_a = B.col_a
    A.col_a = C.col_a
    A.col_a = D.col_a
    A.col_a = E.col_a
    A.col_b = 'b'

-- ANSI
SELECT 
    *
FROM 
    TABLE_A A 
    INNER JOIN TABLE_B B ON A.col_a = B.col_a
    INNER JOIN TABLE_C C ON A.col_a = C.col_a
    INNER JOIN TABLE_D D ON A.col_a = D.col_a
    INNER JOIN TABLE_E E ON A.col_a = E.col_a
WHERE
    A.col_b = 'b'

안시 쿼리는 FROM절에 조인컬럼이, WHERE절에 조회조건이 구분되는 것을 볼 수 있다.

728x90