使用Access / SQL中的查找表匹配配对值

时间:2011-02-21 08:27:56

标签: database ms-access lookup-tables

这可能是一场噩梦。

假设我在两个不同的表中有两行数据,每行包含一个字符。 A是Row1,B是表1中的Row2,在表2中是相反的。 B是Row1,A是Row2。

我还有一个包含三列的第三个表。前两个是要连接的列,第三个是结果值,具体取决于前两列中连接的内容。

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

我本来想做的是尝试通过使用表3中的关联值来找到表1和表2中评分最高的对。

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 + 2之间进行直接连接,因为Table1中的值可能与Table2不匹配,例如......

表1中的Row1和Row2是A,B和Row1,表2中的Row2是B,C。如果我直接加入,值A和C将不会相互排列,只留下B对。

我想到了另外一个问题!在尝试使用子查询时,子查询将不断重新运行...这意味着先前选择的行将用于抓取下次再次导致错误的值。

例如,使用A,B和B,C ...我希望通过子查询返回:

A,B=.8
B,B= 1

当然,除非有一种方法可以取消一行再次使用的资格。 有什么建议或想法吗?我正在使用Access,但我确信这些概念适用于任何数据库解决方案。

0 个答案:

没有答案