안녕하세요,
테이블 세 개에서 어떻게 데이터를 가져와야 좋을지 모르겠어서
질문을 올립니다.
TEST_A 에는 TEST_A의 PK를 포함해서 TEST_B의 key와 TEST_C의 key
를 포함하고 있습니다.
이 때, 결과값은 다음과 같이 얻어오고 싶습니다.
key1 key2 col1 col2 col3
---- ---- ----- ----- -----
1 100 AAA_1 AAA_2 BBB_1
1 500 AAA_1 AAA_2 CCC_1
2 101 AAA_1 AAA_2 BBB_1
3 502 AAA_1 AAA_2 CCC_1
4 103 AAA_1 AAA_2 BBB_1
4 503 AAA_1 AAA_2 CCC_1
즉 , A 테이블의 A_Bkey와 A_Ckey 둘 다 데이터가 있으면 각각 두
개의 로우로 데이터를 가져오고 싶습니다. 어떻게 해야할지 도움
부탁드립니다.
create TABLE TEST_A (
A_Akey int not null,
A_Acol_1 varchar(10) null ,
A_Acol_2 varchar(10) null ,
A_Bkey int null ,
A_Ckey int null
)
create TABLE TEST_B (
B_Bkey int not null,
B_Bcol_1 varchar(10) null ,
B_Bcol_2 varchar(10) null
)
create TABLE TEST_C (
C_Ckey int not null,
C_Ccol_1 varchar(10) null ,
C_Ccol_2 varchar(10) null
)
insert into TEST_A (A_Akey, A_Acol_1, A_Acol_2, A_Bkey, A_Ckey)
values (1, 'AAA_1', 'AAA_2', 100, 500)
insert into TEST_A (A_Akey, A_Acol_1, A_Acol_2, A_Bkey, A_Ckey)
values (2, 'AAA_1', 'AAA_2', 101, null)
insert into TEST_A (A_Akey, A_Acol_1, A_Acol_2, A_Bkey, A_Ckey)
values (3, 'AAA_1', 'AAA_2', null, 502)
insert into TEST_A (A_Akey, A_Acol_1, A_Acol_2, A_Bkey, A_Ckey)
values (4, 'AAA_1', 'AAA_2', 103, 503)
insert into TEST_B (B_Bkey, B_Bcol_1, B_Bcol_2) values (100,
'BBB_1', 'BBB_2')
insert into TEST_B (B_Bkey, B_Bcol_1, B_Bcol_2) values (101,
'BBB_1', 'BBB_2')
insert into TEST_B (B_Bkey, B_Bcol_1, B_Bcol_2) values (102,
'BBB_1', 'BBB_2')
insert into TEST_B (B_Bkey, B_Bcol_1, B_Bcol_2) values (103,
'BBB_1', 'BBB_2')
insert into TEST_B (B_Bkey, B_Bcol_1, B_Bcol_2) values (104,
'BBB_1', 'BBB_2')
insert into TEST_C (C_Ckey, C_Ccol_1, C_Ccol_2) values (500,
'CCC_1', 'CCC_2')
insert into TEST_C (C_Ckey, C_Ccol_1, C_Ccol_2) values (501,
'CCC_1', 'CCC_2')
insert into TEST_C (C_Ckey, C_Ccol_1, C_Ccol_2) values (502,
'CCC_1', 'CCC_2')
insert into TEST_C (C_Ckey, C_Ccol_1, C_Ccol_2) values (503,
'CCC_1', 'CCC_2')
|