• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    해결됨

쿼리 질문

23.08.08 09:36 작성 조회수 145

1

데이터 join 시점부터 두 번 째줄 쿼리 문인

WHERE l = l 은 왜 넣는건가요? 무슨 의미인가요?

답변 1

답변을 작성해보세요.

0

안녕하세요. 강의자입니다.

WHERE 1=1 은 항상 참입니다. 1은 1과 같으니까요. 이것을 추가한 이유는
SQL 컨벤션이라고 하는 코드를 작성할때 쉽게 이해하기위한 에티켓이라고 생각해주시면 되겠습니다.

컨벤션은 필수적이지는 않으나 잘 지키면 나중에 긴 라인의 SQL 코드를 이해하는데 도움이 많이 됩니다.
예를들어 설명드리면 아래 2개의 SQL에는 1=1 조건 유무만 차이가 있습니다.


1=1이 있는 쿼리의 경우 조건문별로 들여쓰기를 맞춰줄수 있어 이해하기 쉽습니다.
1=1이 없는 쿼리의 경우 조건문의 들여쓰기가 맞지 않습니다.

1=1이 있는 쿼리의 경우 다음라인부터 조건문을 체크하면 됩니다.
1=1이 없는 쿼리의 경우 수천라인의 긴 SQL일 경우 첫번째 조건문을 캐치하지 못하는 경우가 있습니다.

이정도 차이가 있는데요~
짧은 라인의 코드라 와닿지 않으실수도 있을거 같습니다. 혹 이해가 어려우시다면 조건문 앞에 항상 1=1을 넣어주면 나중에 코드를 다시 읽을때 편하다 하지만 필수는 아니다 라고 이해하시고 수업을 들어주시면 되겠습니다.

SELECT * FROM ITEM I, VEN V 
WHERE 1 = 1 
AND I.VEN_ID  = V.VEN_ID
AND I.ITEM_ID = V.ITEM_ID 
...(여러조건들) 
SELECT * FROM ITEM I, VEN V 
WHERE I.VEN_ID  = V.VEN_ID
AND I.ITEM_ID = V.ITEM_ID 
...(여러조건들) 

 

강의에 관심갖고 질문 주셔서 감사합니다. 추가적인 질문 있으시다면 댓글 남겨주세요.

감사합니다 :)

친절하게 설명해주셔서 감사합니다! :)