-2

私が求めているシナリオは次のとおりです。

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 でセット操作を使用する必要があります。

4

1 に答える 1