BLOG main image
전체 (276)
[Computer] (42)
[Programming] (62)
[DBMS] (26)
[Operating System] (21)
[Study English] (8)
[For money] (28)
[Interest] (89)
«   2009/11   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
77915 Visitors up to today!
Today 12 hit, Yesterday 95 hit
'Join'에 해당되는 글 1건
[폭주기관차, 2007/01/24 09:39, [DBMS]/Oracle]
- 기본적 Join 문...

SELECT *
FROM (
    SELECT 1
    FROM DUAL ) ATable,
  (
    SELECT 2
    FROM DUAL ) BTable;
 


- 결과 보기 -


- 만약 오른쪽 테이블의 Row 수가 많다면...?

SELECT *
FROM (
    SELECT 1
    FROM DUAL ) ATable,
  (
    SELECT 2
    FROM DUAL
    UNION ALL
    SELECT 3
    FROM DUAL ) BTable;
 


- 결과 보기 -


- 만약 왼쪽 테이블의 Row 수가 많다면...?

SELECT *
FROM (
    SELECT 1
    FROM DUAL
    UNION ALL
    SELECT 4
    FROM DUAL
    UNION ALL
    SELECT 5
    FROM DUAL) ATable,
  (
    SELECT 2
    FROM DUAL
    UNION ALL
    SELECT 3
    FROM DUAL ) BTable;
 


- 결과 보기 -



- 만약 양 테이블의 Row 수가 같다면...?

SELECT *
FROM (
    SELECT 1
    FROM DUAL
    UNION ALL
    SELECT 4
    FROM DUAL
    UNION ALL
    SELECT 5
    FROM DUAL) ATable,
  (
    SELECT 2
    FROM DUAL
    UNION ALL
    SELECT 3
    FROM DUAL
    UNION ALL
    SELECT 6
    FROM DUAL) BTable;
 


- 결과 보기 -



- 실험으로 내린 결론
  : Row가 적은 쪽의 테이블이 기준이 된다.
  : 테이블의 Row 수가 같으면 왼쪽 테이블 기준

- 그렇다면 3개의 테이블일 경우도 Row가 적은 순으로 정렬이 될까?
   A Table = 1, 2, 3
   B Table = 4, 5
   C Table = 6
   위의 결론에 따른 다면 1순위 C, 2순위 B, 3순위 A가 되야한다.


SELECT *
FROM (
    SELECT 1
    FROM DUAL
    UNION ALL
    SELECT 2
    FROM DUAL
    UNION ALL
    SELECT 3
    FROM DUAL) ATable,
  (
    SELECT 4
    FROM DUAL
    UNION ALL
    SELECT 5
    FROM DUAL ) BTable,
  (
    SELECT 6
    FROM DUAL ) CTable;
 


- 결과 보기 -


역시 예상대로 C, B 순으로 테이블이 기준이 잡혔다.

본 실험은 Oracle9i에서 수행되었습니다.
Trackback Address :: http://kongmks.cafe24.com/trackback/46
Name
Password
Homepage
Secret
*1