给定三个表 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 john@test.com
John john@mail.com
John john@john.com
PID Tel
--------
John 011
John 022
我想返回:
PID Email Tel
----------------------
John john@test.com 011
John john@mail.com 022
John john@john.com NULL