0
我有一堆引用某些其他表(零個,一個,兩個或多個)的表。T-SQL:與所有從屬表連接並生成笛卡爾積的查詢
我的示例表可能包含以下幾列:
Id | StatementTable1Id | StatementTable2Id | Value
其中StatementTable1將包含以下幾列:
Id | Name | Label
我希望得到所有可能的組合,並加入他們。 我發現這個link非常有用(查詢產生關於依賴關係的信息)。
如下我會想象我的代碼:
- 準備,我想查詢表的清單。
- 查詢link爲我所有的表和保存結果到臨時表。
檢查從屬表的最大數量。準備查詢模板 - 例如,如果從屬表的最大數量是相等的兩個:
Select Id, '%Table1Name%' as Table1Name, '%StatementLabelTable1%' as StatementLabelTable1, '%Table2Name%' as Table2Name, '%StatementLabelTable2%' as StatementLabelTable2, Value"
使用光標 - 每個從屬表替換從屬表的名稱,並在其中的元素標籤的適當部分。
- 當所有從屬表已被使用 - 用空字符串替換所有剩餘的列。
- 添加「UNION ALL」,並繼續下一表
- 運行查詢
你能告訴我,如果有任何更容易或更好的方法?