강의

멘토링

커뮤니티

Inflearn Community Q&A

jihun12144218's profile image
jihun12144218

asked

Easy to understand, SQL secret recipe for everyone

[SQL Recipe #5] Sub-Pattern (A): WITH Clause

with문 질문

Written on

·

208

1

WITH cust_info AS (

SELECT customer_id, nls_language, nls_territory, gender

FROM OE.customers A

WHERE A.gender = 'M'

)

SELECT A.order_id, A.customer_id, SUM(A.order_total)

FROM OE.orders A, cust_info B

WHERE A.order_status = 4

AND A.order_mode = 'online'

AND A.customer_id = B.customer_id

GROUP BY A.order_id, A.customer_id

HAVING SUM(order_total) > 90000;

문의사항이 있어 남깁니다!.

 

질문1. with 문 안에 있는 FROM 절의 별칭 A 는 with 문 다음에 오는 FROM절의 별칭 A 에 영향이 없나요?

질문2. with 문 안에 있는 SELECT 절에서 gender는 왜 A.gender 가 아닌건지 궁금합니다.

질문3. 질문2이와 이어지는데, gender 일 때와 A.gender일 때의 차이가 있나요?

질문4. with 문 안에 있는 WHERE 절에는 왜 A.gender로 기입이 되어있나요?

 

sql

Answer 1

1

mktcrmer8678님의 프로필 이미지
mktcrmer8678
Instructor

안녕하세요, 답변드립니다.

 

질문1. with 문 안에 있는 FROM 절의 별칭 A 는 with 문 다음에 오는 FROM절의 별칭 A 에 영향이 없나요?

→ 영향 없습니다.

 

질문2. with 문 안에 있는 SELECT 절에서 gender는 왜 A.gender 가 아닌건지 궁금합니다.

→ 명시적으로 'A.' 이라고 별칭을 지정하지 않아도, 테이블에 해당하는 열이 하나라면 오라클 DBMS가

묵시적으로 열을 찾아 출력해줍니다. 그래서 WITH 문 안에 쿼리는 이상없이 작동합니다.

하지만 명시적으로 별칭을 기입하는 것이 좋습니다.

해당 내용은 강의 영상 중반에 설명되어 있는데, 향후 스크립트는 다시 업데이트 하겠습니다.

질문3. 질문2이와 이어지는데, gender 일 때와 A.gender일 때의 차이가 있나요?

→ 이 경우에는 없습니다. 하지만 두개의 테이블에 같은 열 이름이 있다면 명시적으로 지정해줘야 에러가 안납니다.

질문4. with 문 안에 있는 WHERE 절에는 왜 A.gender로 기입이 되어있나요?

→ 다 같은 질문 내용입니다. 지정해도 안해도 상관 없지만, 지정해주는 것이 좋습니다.

향후 소스 코드 업데이트 하겠습니다.

감사합니다.

jihun12144218님의 프로필 이미지
jihun12144218
Questioner

답변 감사합니다!

남은 강연도 잘 듣도록하겠습니다 ㅎ

jihun12144218's profile image
jihun12144218

asked

Ask a question