2013-05-06 4 views
0

Я начинающий доступ.Непараметризированный запрос частичного совпадения

Я пытаюсь написать запрос, который находит все частичные совпадения между полем в одной таблице и полем в другом.

Я дам упрощенный пример того, что я ищу в качестве конечного результата, и, возможно, вы можете помочь мне написать SQL для него.

Таблица 1: Строки

pre 
ing 
up 

Таблица 2: Слова

present 
door 
cup 
making 
kingdom 

Желаемая Таблица результатов:

pre  present 
up  cup 
ing  kingdom 
ing  making 

Вот что у меня есть - это может дать мне подсказку, где я введите то, что я ищу. (например, если я набираю «вверх», то получаю чашку из списка слов). Я хочу, чтобы автоматизировать весь процесс для всех строк в первом списке.

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

Спасибо,

ответ

0

У меня нет доступа передо мной, но я думаю, что вы можете сделать что-то вроде этого (это для SQL Server):

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

SQL Fiddle Demo

Если мне нужно было угадать синтаксис доступа, замените% на * и, возможно, измените + на &, но, надеюсь, это приведет вас к правильному направление.

+0

. , Я думаю, что правильный синтаксис в Access использует '&', а не '+'. И оператор 'like' использует' * 'для подстановочного знака вместо'% '. –

+0

@GordonLinoff - thx, прошло некоторое время с тех пор, как я использовал Access :) – sgeddes

+0

Спасибо за помощь! Но я попытался в обоих направлениях, но я, кажется, продолжаю получать сообщения об ошибках синтаксиса. Предположим, у меня есть [строки]. [Fielda] и [words]. [Fieldb]. Я написал: SELECT [строки]. [Fielda], [words]. [Fieldb] FROM строки JOIN words ON [слова]. [Fieldb] LIKE '*' & [строки]. [Fielda] & '*'; – Cabral