如何使用SQL在具有可变数量字段的两个数据集之间进行联合?

pho*_*ies 3 sql

我有两个来自不同表的查询结果,如下所示.

ID F1 F2 F3 ID F3 F4 F5
S1 d11 d12 d13 S2 d23 d24 d25
S2 d21 d22 d23 S3 d33 d34 d35
S3 d31 d32 d33 S4 d43 d44 d45

ID和F#是字段名称,其他是值.我希望从上面的结果中获得与以下类似形式的新结果.

ID F1 F2 F3 F4 F5
S1 d11 d12 d13
S2 d21 d22 d23
S2 d23 d24 d25
S3 d31 d32 d33
S3 d33 d34
d35 S4 d43 d44 d45

这在SQL中可行吗?我正在使用ADO在VBA中编程.我以前从未做过这样的任务.

请注意,前两个表的字段是动态的.我无法预测它们有多少或它们是什么.

Red*_*ter 7

select ID, F1, F2, F3, NULL as F4, NULL as F5
from Table1
union all
select ID, NULL as F1, NULL as F2, F3, F4, F5
from Table2
Run Code Online (Sandbox Code Playgroud)

  • @phoenies:当你以前不了解架构时,SQL几乎是使用错误的语言.*或*你必须根据某种机制编写**生成**的代码. (2认同)