left outer join on절에 대한 질문, 조건에따른 쿼리문 질문 0 1 1,160

by 개발고수가되기를 [SQL Query] [2021.09.18 22:49:44]


질문이 2가지 입니다.

 

 

1. 저는 ansi조인을 사용하지 않기에 조금 궁금한게

left outer join on절에 

on a.a = b.a라는 값을 조인 하잖아요?

그럼 여기서 풀어서 말하면 a.a기준으로 b.a와  조인한다

여기까지는 알겠는데요 

on절의 바로 밑에 예를들어

and a.c = 'y' 이렇게 되면 조인값들중에 y인 값만 출력하라는 건가요? 아니면 조인 조건이 y인것만 추려내서 조인 걸라는 걸까요? 

where절에는 최종 결과 값의 조건을 줘서 출력해 준다는 것을 아는데 on절이 좀 이해 안가서 글 남겨봅니다.

 

 

 

 

 

두번째 질문은

조회 프로그램에서 예를 들어 1개의 테이블을 이용해서 조회하는데 a라는 조건만 들어 가면 b라는 테이블과 조인하여 이 조건일따만 조인된 조건으로 화면에 뿌려줘야 하는데 쿼리가 풀리지가 않네요...

쿼리에 대한 답은 이건데 조건이 없을때는 a테이블만 조회가 되어야 하고

조건이 들어 갔을때는 아래와 같이 조인되어 뿌려줘야 합니다ㅠ 추석인데 쉬지도 못하고 일하는데 하도 안풀려서 질문 드립니다.

select * from 011 a,

(select ID

from 200

where YM between '202009' and '202109' -- 1년 조건 값

group by ID

) p

where 1=1

and a.ID = ID (+)

and DOR='202109001'

 

갑 쪽에 계신분이.이렇게 하면 된다고 해서 하고 잇는데 음 이게 쿼리로는 쉬운데

 

저희 프로그램에서는 fragment로 값을 받아 조건이 a면 조인된 테이블의 결과값을

아니면 a테이블만 이런식 입니다...

 

 

혹시 1번 질분에서 처리가 가능할지 해서 같이.질문 드립니다

한가위 모두 잘 보내세요!

by 마농 [2021.09.23 09:10:22]

1. a LEFT OUTER JOIN b 는
- a 는 전체(where 절을 만족하는)를 출력하면서
- b 는 조인(on 절을 만족하는) 걸린 것만 보이고 조인 안걸린건 안보임(null)
- 즉, 질문의 후자에 해당됨 : 조인 조건이 y인것만 추려내서 조인 걸라는 것.
2. 질문이 잘 이해가 안가요.
- 정리해서 다시 질문해 주세요.
- 원본 대비 결과표로 질문해 주시면 이해하기 쉽습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입