설명을 제대로 못하는 지식은 내가 제대로 이해하지 못했거나 모르는 지식이다.



1. INNER JOIN
  - 두 테이블간의 조인 조건을 만족하는 ROW만 리턴
  - 일반적인 조인 으로 이해하면 됨
  - 아래 코딩 내용을 보게 되면 이해가 쉽게 될 것 같다.
FOR ( record1 IN TABLE1) { // 드라이빙 테이블 (join을 주도하는 테이블)
  FOR (reocrd2 IN TABLE2) { // 드리븐 테이블 (join에서 끌려가는 테이블)
  IF ( record1.join_column == record2.join_column) {
  join_record_found(record1.*, record2.*);
  } else {
  join_record_notfound( ); //outer join과 달리 만약에 매칭되는게 없다면 더이상 찾지 않는다
  }
  }
}

 
2. OUTER JOIN
  - LEFT/RIGHT/FULL 형태의 OUTER JOIN 이 있음
  - LEFT OUTER JOIN의 경우 조인문 왼쪽에 있는 테이블의 모든 결과를 가져온 후 오른쪽 테이블의 데이터를 매칭하며, 매칭되는 데이터가 없는 경우 NULL 매칭
  - RIGHT OUTER JOIN은 LEFT 조인의 반대  - FULL OUTER JOIN은 일반적으로 사용할 일이 없으며, DB에 따라 지원하지 않음

FOR (record1 IN TABLE1) {
FOr (record2 IN TABLE2) {
IF ( record1.join_column == record2.join_column) {
join_record_found(record1.*, record2.*);
} else {
join_record_found(record1.*, NULL);// Inner Join과 다른 부분. 매칭이 안된다고 하더라도 드라이빙 테이블 데이터(매칭안된 데이터) 와 null로 같이 매칭
}
}
}

출처: http://dimdim.tistory.com/entry/SQL-JOIN-정리-Inner-Join-Outer-Join [딤딤이의 블로그]

출처 : Real Maria DB [위키북스]

반응형

+ Recent posts