我似乎无法使用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 回答
我不认为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];