これは悪夢かもしれません。
2 つの異なるテーブルに 2 行のデータがあり、各行にはそれぞれ 1 文字が含まれているとします。A は Row1 で、B は Table1 の Row2 で、Table2 では逆になっています。B は Row1 で、A は Row2 です。
3 つの列を含む 3 番目のテーブルもあります。最初の 2 つは結合される列で、3 番目は最初の 2 列で結合された内容に応じて結果の値になります。
A,A= 1
A,B=.8
A,C=.2
B,A=.8
B,B= 1
B,C=.6
C,A=.2
C,B=.6
C,C= 1
本質的に、私がやろうとしているのは、 Table3 内の関連付けられた値を使用して、 Table1 と Table2 から最高評価のペアを見つけようとすることです。
A,A= 1
B,B= 1
Table1+2 の A が一致し、Table1+2 の B が一致するためです。代わりに、目的もなくテーブルを結合するだけで、代わりに次のようになることを忘れていました。
A,A= 1
A,B=.8
B,A=.8
B,B= 1
ただし、可能なすべてのペアを取得していますが、うまくいきません。ここでの問題は、たとえば、Table1 内の値が Table2 と一致しない可能性があるため、Table1+2 の間で直接 JOIN を実行できないことです...
Table1 の Row1 と Row2 は A、B で、Table2 の Row1 と Row2 は B、C です。直接 JOIN を実行すると、値 A と C は互いに一致せず、B のペアだけが残ります。
しかし、これにはもう1つの問題があると思いました。サブクエリを使用しようとすると、サブクエリが常に再実行されます...つまり、以前に選択された行が次回再び取得されるため、値が正しくなくなります。
たとえば、A、B および B、C を使用すると、サブクエリを介してこれが返されることが期待されます。
A,B=.8
B,B= 1
もちろん、行が再び使用されることを失格にする方法がない限り. 提案やアイデアはありますか?私は Access を使用していますが、その概念はどのデータベース ソリューションにも当てはまると確信しています。