2013-05-06 71 views
0

我是访问初学者。非参数化部分匹配查询

我想写一个查询,查找一个表中的字段和另一个字段中的字段之间的所有部分匹配。

我将给出一个我正在寻找的最终结果的简化示例,也许您可​​以帮助我为其编写SQL。

表1:弦乐

pre 
ing 
up 

表2:字

present 
door 
cup 
making 
kingdom 

期望中的结果表:

pre  present 
up  cup 
ing  kingdom 
ing  making 

这里是我的 - 它可以给我一个提示,我输入我在找的东西。 (例如,如果我输入'up',那么我会从单词列表中获取杯子)。我想要的是一种自动化第一个列表中所有字符串的整个过程的方法。

SELECT * 
FROM word 
WHERE (((word) LIKE "*" & string & "*")); 

感谢,

回答

0

我没有在我面前的访问,但我认为你可以做一些类似的(这是SQL Server):

select stringname, wordname 
from strings 
    join words on wordname like '%' + stringname + '%' 

SQL Fiddle Demo

如果我不得不猜测Access语法,请用%替换%,并且可能将+更改为&,但希望这会让您进入正确的状态方向。

+0

。 。我认为Access中正确的语法使用'&'而不是'+'。 ''''运算符使用'*'代替'%'作为通配符。 – 2013-05-06 18:38:49

+0

@GordonLinoff - thx,已经有一段时间了,因为我已经使用Access了:) – sgeddes 2013-05-06 18:39:53

+0

感谢您的帮助!但是,我尝试了两种方法,但我似乎不断收到语法错误消息。假设我有[字符串]。[fielda]和[words]。[fieldb]。我写道:SELECT [strings]。[fielda],[words]。[fieldb] FROM strings JOIN words ON [words]。[fieldb] LIKE'*'&[strings]。[fielda] – Cabral 2013-05-06 18:47:05