2016-05-09 52 views
0

合併數據我有一個表阿如下:查詢以根據地址類型

ID Name Age 
1 A  18 
2 B  19 

此表具有一個一對多映射與所述地址表中。

ID ParentID AddressType ALine1 ALine2 State City Country 
10  1 Mail  AAA AAA AAB CCC CDCD 
11  1 Home  BBB BBA BAB CAC CFCF 
12  2 Mail  CAV VAC CSC DFS DDDC 

我需要獲得所需的輸出:

Name Age Address1Type ALine1 ALine2 State1 City1 Country1 Address2Type A2Line1 A2Line2 State2 City2 Country2 
---- --- ------------ ------ ------ ------ ----- -------- ------------ ------- -------- ------ ----- -------- 
A  18 Mail   AAA AAA AAB CCC CDCD  Home   BBB  BBA  BAB CAC CFCF 
B  19 Mail   CAV VAC CSC DFS DDDC  null   null null  null null null 

我可以將它們合併,但越來越多記錄相同的名稱。我怎樣才能得到我需要的輸出?

+0

什麼是SQL語句,你有試過嗎? – lit

+0

'merge'是一個DML操作,用於在表中插入/更新數據;你真的這麼說嗎,還是你只是在查詢並想要一個結合了兩個表中數據的結果集呢? –

+0

我只是查詢表並想要一個結合了來自兩個表的數據的結果集。 –

回答

0

試試這個:

SELECT   parent.Name, 
       parent.Age, 
       mailInfo.*, 
       homeInfo.* 
FROM   parent 
LEFT OUTER JOIN addresses AS mailInfo 
      ON parent.ID = mailInfo.ParentID 
      AND mailInfo.AddressType = 'Mail' 
LEFT OUTER JOIN addresses AS homeInfo 
      ON parent.ID = homeInfo.ParentID 
      AND mailInfo.AddressType = 'Home'; 
+0

當然,這隻適用於你只需要尋找家庭住址和郵件地址 –

+0

非常感謝你Robert幫助過! –

+0

請您接受答案。謝謝 –