:
的SQL Server將多個數據集,而不會考慮三個表TA,TB,TC重複數據
Ta(ID, Field1)
Tb(ID, Field2)
Tc(ID, Field3)
鑑於數據例如:
Ta
ID Field1
---------
1 A
1 B
Tb
ID Field2
---------
1 C
1 D
2 E
Tc
ID Field3
---------
1 F
2 G
2 H
問: 我怎樣才能加入這個要返回的數據:
ID Field1 Field2 Field3
-----------------------
1 A C F
1 B D NULL
2 NULL E G
2 NULL NULL H
我認爲我可以通過外連接實現這一點,但似乎並非如此。只要我帶回沒有重複行的所有信息,分組順序並不重要。
只是爲了澄清。只要結果集返回最小行數中的所有數據,我並不介意使用哪種組合。下面是我想要做的更實際的例子:
給定一個人,叫他約翰。他有兩個電話號碼和三個電子郵件地址:
PID Email
---------
John [email protected]
John [email protected]
John [email protected]
PID Tel
--------
John 011
John 022
我要回:
PID Email Tel
----------------------
John [email protected] 011
John [email protected] 022
John [email protected] NULL
爲什麼是分配給ID = 3的最後一排? – Lamak
'1 A D F'?和'1 B C F'?爲什麼不回報他們,他們顯然是從你的回報中失蹤,不是嗎?在你迴應之前,停下來思考,也許你會意識到真正的問題與你的需求... –
你的組合似乎取決於原始表中的行的排序。在SQL(和SQL Server)中,表中行的順序未指定。你有行號或標識列或日期或確定訂購的東西嗎? –