首页 文章

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

提问于
浏览
0

我似乎无法使用MS Access弄清楚以下内容 .

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

防爆 . 表格1

A列| B栏| C栏

Dan Stan XXX

大卫XXX XXX

罗杰XXX XXX

Ricco XXX XXX

Wilbert XXX Dingo

表2

D列| E列| F栏

1 Roger North

2斯坦南

3 Michael South

4 Colo East

5 Kanye East

6 Dingo West

返回

A列| B栏| C列| F栏

Dan Stan XXX South

罗杰XXX XXX北

Wilbert XXX Dingo West

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

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

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

任何帮助,将不胜感激 .

1 回答

  • 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];

相关问题