:
的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)中,表中行的顺序未指定。你有行号或标识列或日期或确定订购的东西吗? –