私が求めているシナリオは次のとおりです。
Result = Nothing
CollectionOfTables = Tbl1, Tbl2, Tbl3
While(True){
CurrentTable = GetHighestPriorityTable(CollectionOfTables)
If(CurrentTable) = Nothing Then Break Loop;
RemoveCurrentTableFrom(CollectionOfTables)
ForEach ID in CurrentTable as TempRow {
If(Result.DoesntContainsId(ID)) Then Result.AddRow(TempRow)
}
}
次の 3 つのテーブルがあるとします。
IdName表 1、優先度 1
1 John
2 Mary
3 Elsa
IdName表 2、優先度 2
2 Steve
3 Max
4 Peter
IdName表 3、優先度 3
4 Frank
5 Harry
6 Mona
これが私が必要とする最終結果です。
IdName結果
1 John
2 Mary
3 Elsa
4 Peter
5 Harry
6 Mona
心に留めておくべきいくつかのヒント。
実際のテーブル
数は 10 です。テーブルあたりの行数は 100 万を超えています。
クエリで結合を使用する必要はありませんが、データ量が多いため、クエリを最適化し、カーソル スクリプトではなく SQL でセット操作を使用する必要があります。