この質問のタイトルが意味をなすかどうかはわかりませんが、私の問題を説明させてください。
このようなテーブルがあります。
DocTag テーブル
DocId | TagId
10 | 8
10 | 45
11 | 2
11 | 15
12 | 9
12 | 32
13 | 8
13 | 15
タグテーブル
TagId | TagName
8 | HomePage
2 | Private
45 | IssuerNameOne
15 | IssuerNameTwo
32 | IssuerNameThree
9 | TagThatNeedsToBeSkipped
3000 | NewTag
DocTag テーブルには、Document テーブルと Tag テーブルからの FK が含まれています。ここで、ID 8 または 2 と他の ID のいずれか (例: 45、32、15) を持つタグを持つドキュメントを選択する必要があります。このテーブルでドキュメントが見つかったら、[DocId | DocId | 3000]、ここで 3000 は新しいタグの ID です。
つまり、HomePage または Private に属するドキュメントと、言及された発行者の 1 つを選択し、そのドキュメントに新しいタグを割り当てる必要があります。
数百万のドキュメントと数百のタグ、72 の異なる発行者があるため、すべての発行者に対してクエリを 72 回実行する必要があると思います。
「IssuerNameOne」の場合、選択クエリの結果は次のようになります。
DocId
10
TagId が 8 個と 45 個あるためです。
「IssuerNameTwo」の場合、選択クエリの結果は次のようになります。
DocId
11
13
2、8、および 15 個の TagId が原因です。
挿入の実行後、DocTag は次のようになります。
DocId | TagId
10 | 8
10 | 45
11 | 2
11 | 15
12 | 9
12 | 32
13 | 8
13 | 15
10 | 3000
11 | 3000
13 | 3000