join에 대한 개념파악이 잘 안되는 것 같습니다 0 8 1,183

by 될때까지 [Oracle 기초] [2013.08.07 14:29:57]


개인사정으로 질문내용 삭제합니다 죄송합니다

by 임상준 [2013.08.07 14:42:07]
그냥 b.c1='a' 인 값을 b 에서 찾아서 그걸 a 와 outer join 한다고 보시면 될건데요
b.c1='a' 이고 b.c1=a.c1 인 값 + 나머지 a 값....

by 될때까지 [2013.08.07 14:44:47]
그러면 b.c1='a'나 b.c1(+)='a'나 차이가 없는건가요?

by 될때까지 [2013.08.07 14:48:37]
아 잘못생각했었네요 b.c1(+) = 'a' 이기 때문에 outer join이 되는거군요 제가 이해한게 맞는건가요?

by 될때까지 [2013.08.07 15:03:58]

제가 쿼리는 제대로 작성한 것이 맞나요? 1-1~1-3 까지는 얼추 이해가 되는 느낌인데 2-1부터는 그룹바이를 해야만 제 예상대로 결과가 나오고 안하면 중복값이 너무 많아지네요 이유가 뭔지 궁금합니다

by 마농 [2013.08.07 15:08:34]

b.c2 와 c.c1 을 조인하는 관계가
1:1 이나 m:1 혹은 1:n 관계 이어야 하는데
위 예제는 m:n 관계네요...
이런 관계의 조인은 데이터가 불어나기 마련입니다.


by 마농 [2013.08.07 15:06:19]

1-1 에서 a를 기준으로 b를 아우터조인한거구요.
아우터 조인은 b에 없어도 a는 나와야 합니다.
즉 a 의 모든 값 a,b,c 가 다 나오면서
b에 대한 조건을 만족한것만 연결되는(옆에 붙는) 형식이죠.
b에 대한 조건을 만족하지 못하면 a만나오고 b는 널이 나오죠.


1-2에서 b에 대한 조건에 (+) 가 빠졌네요.
이러면 아우터 조인을 했으나 추가 조건 때문에 아우터 조인 효과가 사라집니다.
아우터조인 하나마나한 결과
1-3과 같은 결과가 나타나게 됩니다.


2-1 은 아우터 조인에 아우터조인을 또 하는 형상
a > b > c 로 차례로 연결되는 구조입니다.
2-2 는 아우터 조인 하나마나...


by 될때까지 [2013.08.07 15:27:54]
감사합니다
명쾌하게 이해가 되었네요
조인이 1:1이나 m:1, 1:n 관계여야 하는 이유와 and연산자로 결합할 경우 양쪽에 동일한 조인이 사용되어야 한다는 걸 배우라고 진행시킨 문제인가봅니다
정말 감사합니다 오늘도 많이 배워갑니다

by imilly [2013.08.07 19:37:21]

마농님 댓글들을 모아서 책으로 내도 될듯

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