手中有三個表格,分別叫 A, B, C
其中資料是
A: B: C:
NAME_ID Name AGE_ID AGE NAME_ID AGE_ID
N1 Air A2 20 N2 A2
N2 Daisy A3 30
想合併三個表格變成輸出:
NAME_ID NAME AGE_ID AGE
N1 Air NULL NULL
N2 Daisy A2 20
NULL NULL A3 30
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 | --建立測試資料表 CREATE TABLE TA ( NAME_ID nchar(10) NULL, NAME nchar(10) NULL ) ON [PRIMARY] insert into TA (NAME_ID,NAME) values ('N1','Air') insert into TA (NAME_ID,NAME) values ('N2','Daisy') CREATE TABLE TB ( AGE_ID nchar(10) NULL, AGE INT NULL ) ON [PRIMARY] insert into TB (AGE_ID,AGE) values ('A2',20) insert into TB (AGE_ID,AGE) values ('A3',30) CREATE TABLE TC ( NAME_ID nchar(10) NULL, AGE_ID nchar(10) NULL ) ON [PRIMARY] insert into TC (NAME_ID,AGE_ID) values ('N2','A2') |
解法
TA和TC完全外部合併為 A,再將A和TB再次外部合併為 B
1 2 3 | select TA.*,B.* from (TA full outer join TC AS A ON TA.NAME_ID=A.NAME_ID) --TA和TC兩個表先外部合併 AS A full outer join TB AS B ON A.AGE_ID=B.AGE_ID --A和TB兩個表在外部合併 AS B |
沒有留言:
張貼留言