SQL 외부연결


SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL LIKE
SQL ORDER BY
SQL 함수
SQL COUNT
SQL GROUP BY
SQL HAVING
SQL 별명
SQL 연결
SQL 외부연결
SQL Subquery
SQL UNION
SQL UNION ALL
SQL INTERSECT
SQL MINUS
SQL CONCATENATE
SQL SUBSTRING
SQL TRIM


사이트안내




  SQL > SQL인스트럭션 > 외부연결

전에 우리가 본 좌연결 (left join), 또 내부연결로 (inner join) 도 칭함.이런 상황하에서는 두개 도표내부에 같은 수치가 있어야만 자료를 찾아낼수 있습니다. 만약 한 도표중의 매개 데이터를 열거하려면 그 수치가 다른 도표에 나타났던 나타나지 않았던 어떻게 할가요? 이때는 SQL OUTER JOIN (외부연결) 인스트럭션을 사용해야 합니다.

외부연결의 용어는 데이터베이스가 부동함에 따라 부동합니다. 예를 들어 Oracle 에서 우리는 WHERE 에서 모든 데이터의 그 도표를 찾아낸후"(+)"를 추가하여 도표중의 모든 데이터가 다 필요하다는것을 표시합니다.

만약 우리에게 아래와 같은 두개의 도표가 있다면:

Store_Information 도표
Store_NameSalesTxn_Date
Los Angeles150005-Jan-1999
San Diego25007-Jan-1999
Los Angeles30008-Jan-1999
Boston70008-Jan-1999

Geography 도표
Region_NameStore_Name
EastBoston
EastNew York
WestLos Angeles
WestSan Diego

매개 점포의 영업액을 파악해야 합니다. 우리가 보통 연결을 사용한다면 'New York' 점포를 빠뜨리게 되는데 그것은'New York'점포가 Store_Information 이 도표내에 존재하지 않기 때문입니다. 하여 이런 상황에서는 외부 연결로 이 두개의 도표를 연결해야 합니다:

SELECT A1.Store_Name, SUM(A2.Sales) SALES
FROM Geography A1, Store_Information A2
WHERE A1.Store_Name = A2.Store_Name (+)
GROUP BY A1.Store_Name;

여기서 우리는Oracle의 외부연결 용어를 사용하였습니다:

결과:

Store_Name SALES
Boston 700
New York
Los Angeles 1800
San Diego 250

주의:두번째 도표에 상응한 데이터가 없을 경우SQL 는 NULL치를 되돌려 옵니다. 이 예에서 'New York' 가 Store_Information 도표내에 존재하지 않기 때문에 그의 "SALES" 필드가 NULL입니다.

SQL Subquery >>



Copyright © 2014   1keydata.com   All Rights Reserved