0

これは悪夢かもしれません。

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 を使用していますが、その概念はどのデータベース ソリューションにも当てはまると確信しています。

4

0 に答える 0