알고 계시겠지만,
7.1에서 추가 된 것 중 하나가 outer join 입니다.
>>정재익 님께서 쓰시길<<
:: outer join 이라는 게 무엇일까요 :/)
:: DB 에서 서로 다른 테이블에 있는 자료들을 서로 연결하여 호출해 내는 것을 join 이라고 합니다. 이 j
:: oin 이라는 것에는 개념상으로 몇가지 종류로 나눌 수 있습니다.
::
:: 오른쪽과 왼쪽 두개의 테이블이 있다고 생각해 봅시다. (공책에 그렇게 두개의 테이블을 적었다고 생
:: 각해 봅시다.)
::
:: left outer join:
:: 왼쪽 table의 자료는 모두 출력되고 오른쪽 table의 자료는 연결되는 것들만 출력
:: 왼쪽 테이블의 COL명 = 오른쪽 테이블 COL명(+)
::
:: right outer join
:: :위와 반대
:: 왼쪽 테이블의 COL명(+) = 오른쪽 테이블 COL명
::
:: inner join
:: :연결된 두 table에서 같은 자료가 있는 것들만 join되어 추출
:: 왼쪽 테이블의 COL명 = 오른쪽 테이블 COL명
::
:: 일반적으로 가장 많이 사용하는 것은 inner join 입니다. 그리고 위에서 (+)라고 표현하는 형식으로
:: 적어 주는 것은 오라클에서 outer join 을 표시할때 사용하는 SQL 구문형식입니다. 이는 물론 PostgreSQ
:: L 에서는 통하지 않는 것입니다.
::
:: 아래 이승현님이 적은 SQL 구문은 오른쪽에 customer 라는 테이블이 있고, 좌측에 salesorder 라는 테
:: 이블이 있다고 가정할때 customer 에 있는 모든 자료와 좌측의 salesorder 에 있는 것은 customer 와
:: 연관되는 자료들만 출력한 것입니다. 그러므로 left outer join 이라고 표현할 수 있겠지요. :/)
::
:: 도움이 되셨길...
::
:: 주로 inner join 을 많이 이용하지만 가끔은 outer join 을 사용할 일도 제법 있습니다. 그래서 개인
:: 적인 생각으로는 outer join 도 언젠가는 구문상에서 지원해야 한다고 생각합니다. :/)
::
:: >>fith 님께서 쓰시길<<
::
:: :: 흠....outer join 이 뭐하는 거고..
:: :: 어떻게 쓰는 건가요..?
:: ::
:: :: >>이승현 님께서 쓰시길<<
:: ::
:: :: :: SELECT name, order_id
:: :: :: FROM customer, salesorder
:: :: :: WHERE customer.customer_id = salesorder.customer_id
:: :: :: UNION ALL
:: :: :: SELECT name, NULL
:: :: :: FROM customer
:: :: :: WHERE customer.customer_id NOT IN (SELECT customer_id FROM salesorder)
:: :: ::
:: :: :: ORDER BY name;
:: :: ::
:: :: ::
|