[SQLD] 외부조인 에러. 질문있습니다. 0 5 806

by 부산광어 [2020.05.16 12:56:37]


26번.PNG (44,598Bytes)
포괄조인 에러.jpg (1,376,085Bytes)

26번 문을 보고, 어? 저렇게 하면 에러가 나는 것이 아닐까 라고 생각해보았습니다.

왜냐하면 제가 공부한 내용에서는 하나의 칼럼을 기준으로 외부조인을 할 수 있다는 내용이 있었거든요 ㅠㅠ

그래서 제가 외부조인의 동작원리에 대해서 정확하게 알지 못해서 일어나는 현상인 것으로 결론을 내렸습니다. 밑에 사진들을 바탕으로 에러가 나는 이유에 대해서 알려주시면 감사하겠습니다 ㅠㅠ..

by 마농 [2020.05.18 08:22:29]

에러 발생예제와 문제의 예제는 형태가 다릅니다.
에러예제2) t1 > t2 < t3 형태로 t2 에 대한 아우터 조인 기준이 2개인 경우입니다.
문제26) t1 > t2 > t3 형태로 차례대로 아우터 조인해 나가는 형태.
단, t1 > t2 > t3 아우터 조인 후에 t4 를 이너조인 하고 있어서 이제까지의 아우터 조인이 무효화 되겠네요.


by 부산광어 [2020.05.18 10:08:02]

감사합니다 

그런데, 선생님 말씀이 잘 이해가 되지 않습니다. 제가 어딘가 착각을 하고 있는 것 같습니다.

특히, 에러발생예제 2의 쿼리문이 T2를 기준으로 발생한다는 것을 잘 모르겠습니다. 

이때까지 T1.SABUN을 기준으로 T2에서 값을 가져오고, 또 T2를 기준으로 T3에서 값을 가져오기 때문에 

2개의 기준이 생겨 에러가 발생한다. 라고 알고 있었거든요 ㅠㅠ 

어떤 부분에서 제가 착각하고 있는지 모르겠습니다. 짚어주시면 감사하겠습니다ㅠㅠ


by 부산광어 [2020.05.18 10:09:32]

또한, 문제 26번에서는 T1을 기준으로 T2값을 가져오고, T2를 기준으로 T3값을 가져오기 때문에

2개의 기준이 생겨 오류가 발생한다. 라고 생각했구요 ..

어떤 부분을 제가 착각하고 있는 걸까요?


by 마농 [2020.05.18 10:25:02]

에러발생예제2) (t1 > t2 < t3 : t1, t3 가 t2로 몰리는 형상)
- t1 을 기준으로 t2 아우터 조인 t1.sabun = t2.sabun(+)
- t3 를 기준으로 t2 아우터 조인 t2.acad_ability(+) = t3.acad_ability
- t2 에 대한 아우터 조인 기준이 (t1, t3) 2개이므로 에러
문제26) (t1 > t2 > t3 : t1, t2, t3 순서로 흘러가는 형상)
- t1 을 기준으로 t2 아우터 조인 t1.col1 = t2.col1(+)
- t2 를 기준으로 t3 아우터 조인 t2.col1 = t3.col1(+)
- t2 에 대한 아우터 조인 기준이 (t1) 1개이므로 정상
- t3 에 대한 아우터 조인 기준이 (t2) 1개이므로 정상
 


by 부산광어 [2020.05.18 10:53:05]

감사합니다!

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