상기님 이미 모르고 있었습니다. :/)
지원이 되는군요. :/)
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
* | expression [ AS output_name ] [, ...]
[ FROM from_item [, ...] ]
[ WHERE condition ]
[ GROUP BY expression [, ...] ]
[ HAVING condition [, ...] ]
[ { UNION | INTERSECT | EXCEPT [ ALL ] } select ]
[ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ]
[ FOR UPDATE [ OF tablename [, ...] ] ]
[ LIMIT { count | ALL } [ { OFFSET | , } start ]]
where from_item can be:
[ ONLY ] table_name [ * ]
[ [ AS ] alias [ ( column_alias_list ) ] ]
|
( select )
[ AS ] alias [ ( column_alias_list ) ]
|
from_item [ NATURAL ] join_type from_item
[ ON join_condition | USING ( join_column_list ) ]
여기서 보니 join_type 에서 명시할 수 있는 것이, [ INNER ] JOIN, LEFT [ OUTER ] JOIN, RIGHT [ OUTER ] JOIN, FULL [ OUTER ] JOIN, or CROSS JOIN 이들 중 하나로군요. SQL 구문하나에 있어서 만큼은 MySQL 과 PostgreSQL 은 아직 비교가 되지 않을 정도입니다. :/)
그런데 CROSS JOIN 이라는 것이 무엇이죠. FULL JOIN 이라는 것은 의미상으로 보아 RIGHT + LEFT JOIN 일 가능성이 큰 것 같구...
>>김상기 님께서 쓰시길<<
:: 알고 계시겠지만,
:: 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 구문형식입니다. 이는 물론 Postg
:: reSQ
:: :: 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;
:: :: :: ::
:: :: :: ::
|