table A : PK->ID
ID name money
---------------
AA abc 10
BB bcd 20
table B : PK -> ID
ID b_money
------------
AA 30
CC 20
期望結果:
ID name money b_money
--------------------------
AA abc 10 30
BB bcd 20 NULL
CC NULL NULL 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | --創建測試資料表 CREATE TABLE Table_A ( ID varchar(10) NULL, NAME varchar(10) NULL, a_MONEY int NULL ) ON [PRIMARY] insert into Table_A(ID,NAME,a_MONEY) values ('AA','abc',10) insert into Table_A(ID,NAME,a_MONEY) values ('BB','bcd',20) CREATE TABLE Table_B ( ID varchar(10) NULL, b_MONEY int NULL ) ON [PRIMARY] insert into Table_B(ID,b_MONEY) values ('AA',30) insert into Table_B(ID,b_MONEY) values ('CC',20) |
解法
將Table_A和Table_B的ID做聯集(UNION),找出ID
將Table_A、Table_B併入Table_C
1 2 3 4 5 6 7 | select Table_C.ID,NAME,a_MONEY,b_MONEY from( select ID from Table_A UNION select ID from Table_B) as Table_C --將Table_A和Table_B的ID做聯集UNION left outer join Table_A ON Table_C.ID=Table_A.ID --將Table_A併入Table_C left outer join Table_B ON Table_C.ID=Table_B.ID --將Table_B併入Table_C |
沒有留言:
張貼留言