MS Access两个表返回记录,其中表1中的值位于多个列表2中

时间:2017-07-18 21:36:03

标签: ms-access

我似乎无法使用MS Access找出以下内容。

总结是我有两张桌子。我想将表中的列E与列A,B或C进行比较,并返回值匹配的table1上的记录。基本上匹配的条件(table2.column E)可以在table1中的多个列中。

实施例。 表1

A栏| B栏| C栏

Dan Stan XXX

David XXX XXX

Roger XXX XXX

Ricco XXX XXX

Wilbert XXX Dingo

表2

D列| E列| F栏

1 Roger North

2 Stan South

3 Michael South

4 Colo East

5 Kanye East

6 Dingo West

返回

A栏| B栏| C列| F栏

Dan Stan XXX South

Roger XXX XXX North

Wilbert XXX Dingo West

我已经厌倦了以下MS Access(2013)中的SQL字符串

SELECT table1。* FROM table2 INNER JOIN table1 ON table2.column E = table1。[A列] OR table2.column E = table1。[B列] OR table2.column E = table1。[C列];

我没有收到错误但出现了严重错误 - 此数据库上的查询通常需要20-40秒(上方)(300万条记录 - 链接到MS SQL Server 2016的表) - 查询一直在进行40分钟。当我在MS Access中查看表视图时,它会显示记录,但应用程序会保持冻结和口吃。我试图结束记录,我不得不杀死MS Access。尝试将数据拉入Excel中的数据透视表,我从未见过数据拉得这么慢(我们每分钟说50条记录)。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不认为join子句可以有OR操作。另外,[E列]需要[]。

尝试:

SELECT table1.*, tabl2.columnF FROM table1, table2 WHERE [column e] = [column a] OR [column e] = [column b] OR [column e] = [column c];