강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hyeminyang
hyeminyang

câu hỏi đã được viết

Áp dụng ngay vào thực tế! Phân tích SQL thực chiến học qua dữ liệu thương mại điện tử

Join(2) - Join nhiều bảng

쿼리 질문

Đã giải quyết

Viết

·

262

1

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

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

sql

Câu trả lời 1

0

longvacation님의 프로필 이미지
longvacation
Người chia sẻ kiến thức

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

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 
...(여러조건들) 

 

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

감사합니다 :)

Hyemin Yang님의 프로필 이미지
Hyemin Yang
Người đặt câu hỏi

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

Hình ảnh hồ sơ của hyeminyang
hyeminyang

câu hỏi đã được viết

Đặt câu hỏi