我似乎无法使用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条记录)。
任何帮助将不胜感激。
答案 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];