sql left outer join ????

SELECT a.sugang_no
,a.class_no
,a.user_id
,a.user_name
,a.email
,a.apply_as_student
,a.office_address
,b.course_name
,b.lecture_start_date
,b.lecture_end_date
,b.course_name
,c.major
,c.organ
FROM (sugang as a LEFT OUTER JOIN sugang_class as b ON a.class_no=b.no)
LEFT OUTER JOIN member as c on a.user_id=c.user_id
order by a.sugang_no desc limit 5 G;

손님 이것과 다른점을 함께 올려 주시면 다른 사람들에게 도움이 될 수도 있겠네요 이건 참고사항입니다.
(여기서 * 는 일일이 다 쓰기 귀찮아서 일부러 했음 컬럼은 위와 같음)

select a.*, b.*, c.*
from sugang as a, sugang_class as b, member as c
where a.class_no = b.no and a.user_id = c.user_id
order by a.sugang_no desc limit 5
11/29 16:45:14

거친마루 짧게 말하면, 교집합과 합집합입니다.
inner join(normal join)은 두 테이블에 모두 조건이 만족하는 필드들만 추려서 보여주게 되지만, 한쪽에라도 데이타가 없다면 보여지지 않게 되므로 left outer join 을 쓰면, 좌측 테이블에만 존재하는 데이타일찌라도 나머지 칼럼들은 비워둔채 출력해줍니다.

간단한 예로, 출석 테이블을 만든다 가정하면

normal join 으로는, 한번도 출석하지 않은 학생은 목록에도 보이지 않게 되지만, outer join 으로는 모두 볼 수 있게 됩니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다