강의

멘토링

커뮤니티

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

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

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

Phân tích dữ liệu SQL được học qua nhiều ví dụ khác nhau

Trích xuất sản phẩm liên quan theo đơn hàng và khách hàng bằng SQL - 02

"주문별 고객별 연관 상품 추출 SQL로 구하기-02" 수업 질문

Viết

·

41

0

강사님 안녕하세요 WITH절로 조인하셨을때

아래와 같이 WHERE절에서 product_id를

비교했을때와 조인조건으로 넣었을때 같은 실행계획과 성능이 나오는것 같은데

둘다 맞다고 봐도 되나요?

조인조건에 있는 것과 where조건에 있는 것이

어떤 차이가 있는지 잘 모르겠어서요!

[궁금한 사항]

jointemp_00bona.user_id = b.user_idanda.product_id != b.product_id

--where a.product_id != b.product_id

 

[전체쿼리]

with

temp_00as (

selectb.user_id , a.order_id , a.product_id

fromorder_itemsa

joinordersbona.order_id = b.order_id

),

temp_01as (

selecta.user_id ,a.product_idasprod_01 , b.product_idasprod_02

fromtemp_00a

jointemp_00bona.user_id = b.user_idanda.product_id != b.product_id

--where a.product_id != b.product_id

)

selectcount(*) fromtemp_01

sqlpostgresqldbms/rdbms데이터-엔지니어링data-analysis

Câu trả lời 2

1

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

안녕하십니까

ANSI SQL에서는 조인절에는 명확하게 조인의 조건만 나열해 주는게 좋습니다. 조인은 테이블과 테이블 간을 조인 조건으로 연결하는 것입니다. 아래 쿼리에서 조인 조건, 즉 연결 조건은 a.user_id = b.user_id 입니다. a.product_id != b.product_id 는 조인 조건이 아닙니다. 조인이 된 다음에 조인 결과 데이터를 필터링(where 조건으로 거르는) 조건입니다. join 절에 a.product_id != b.product_id라고 적어도 이는 DBMS가 잘 알아서 조인 조건으로 실행 계획을 세우지 않고 필터링 조건으로 실행 계획을 세우기 때문에 두개의 실행 계획이 동일하게 나올 것입니다.

요약하자면, SQL 작성 시 조인절에는 조인의 조건이, Where 절에는 필터링 조건이 오도록 SQL을 명확히 작성하는 것이 바람직 합니다.

감사합니다.

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

감사합니다~!

0

안녕하세요, 인프런 AI 인턴입니다. 박준현님이 궁금해하신 주제는 SQL에서 조인 조건과 필터 조건(WHERE절)의 차이점에 대한 것입니다. 비슷한 주제를 다루고 있는 유사 질문과 답변을 공유 드립니다.

조인 조건과 WHERE 절의 차이

  • 조인 조건: 두 테이블 간에 관계를 설정하기 위해 사용됩니다. 주로 두 테이블에서 일치하는 행을 결합할 때 사용하는 조건을 지정합니다.
  • WHERE 절: 쿼리 결과를 필터링하기 위한 조건을 설정합니다. 이 절은 조인 조건 이후에 작동하여 일치하지 않거나 불필요한 데이터를 필터링합니다.

SQL 실행 계획에서 조인 조건과 WHERE 조건이 별도의 역할을 하지만, 쿼리에 따라서 유사한 결과를 만들 수 있습니다. 성능 측면의 차이는 데이터의 구조와 인덱스 유무에 따라 달라질 수 있습니다.

유사한 답변 참고하기

아래의 게시물 URL은 조인 관련 성능이나 조건 설정에 대한 질문과 답변을 담고 있습니다. 강사님의 답변을 통해 추가적인 이해를 도울 수 있을 것입니다:
- 주문별 연관상품 추출 SQL 관련 문의

강사님께서 설명하신 내용에 따르면, 조인 조건과 WHERE 절 중 필터링 역할에 더 적합한 것은 WHERE 절이며, 조인 절에서의 복잡한 조건은 성능에 영향을 줄 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

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

Đặt câu hỏi