2014-11-19 5 views
0

Может кто-то, пожалуйста, поделитесь со мной хорошим подходом к построению запроса, который использует одно текстовое поле с несколькими ключевыми словами, которые выбирают столбцы в нескольких таблицах БД. См. Прикрепленный снимок экрана.Одиночный блок поиска с несколькими ключевыми словами

Требование
мне нужно будет определить правило формата, так что пользователь «должен» ввести поиск ввода в следующем формате: [категория], [пригород] [почтовый индекс]. После этого логический код (веб-API) может проанализировать этот вход (здесь будет проанализирован мой поисковый запрос). SEARCH IMAGE

ответ

0

Если вы ожидаете унифицированный выходной, то вы можете использовать UNION

INSERT INTO @resultTable 
SELECT serviceid 
FROM (
     SELECT DISTINCT serviceid 
     FROM addresses s 
     WHERE s.suburb = @criteria 
       OR s.postal = @criteria 
     UNION 
     SELECT DISTINCT serviceid 
     FROM categories c 
     WHERE c.categotyName = @criteria 
) 

SELECT * 
FROM services s INNER JOIN @resultTable ON ... 
+0

Эй спасибо за это. Есть ли причина, по которой вы сначала вставляете в другую таблицу? –

+0

Я пытаюсь заполнить правильные результаты поиска из трех параметров поиска –

+0

Нет никакой конкретной причины для этой временной таблицы, мы можем иметь различную реализацию, например, cte –

Смежные вопросы