我有一堆表引用了一些其他表(零,一,二或更多)。
我的示例表可能包含以下列:
Id | StatementTable1Id | StatementTable2Id | Value
其中StatementTable1将包含以下列:
Id | Name | Label
我希望得到所有可能的组合并加入所有这些组合。 我发现这个link非常有用(查询产生有关依赖关系的信息)。
我想我的代码如下:
检查从属表的最大数量。准备查询模板 - 例如,如果最大数量的从属表等于2:
Select
Id, '%Table1Name%' as Table1Name,
'%StatementLabelTable1%' as StatementLabelTable1,
'%Table2Name%' as Table2Name,
'%StatementLabelTable2%' as StatementLabelTable2, Value"
使用cursor - 为每个依赖表替换相应的部分,其中包含依赖表名和元素标签。
你能告诉我是否有更简单或更好的方式?
答案 0 :(得分:1)
如果您不提前知道列详细信息,那么您在此处列出的内容听起来就像您需要做的那样。可能会有一些反复试验以确保细节正确,但这是一个很好的计划。
话虽如此,为什么你想要做这样的事情呢?听起来您需要缩小对实际所需数据的要求。否则,当您向数据库添加数据时,此查询和结果数据集将很快变得非常笨拙(这些数据集是您听到的关于每天变成“门禁报告”的类型;没有人使用它们,但它们从不记住它为什么被创建,所以他们继续运行报告,并将其用作门挡。)