2016-02-19 3 views
0

У меня есть две таблицы, как такSQL - Регистрация на содержит

Table A 
server_name 
start_time 
end_time 

Table B 
id 
description 

То, что я хочу сделать, это соединить две таблицы вместе, так это выглядит, как этот

Table C 
server_name 
start_time 
end_time 
id 
description 

Единственный способ, которым я могу сделать соединение - это если я ищу имя_сервера в описании.

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

+3

Какая СУБД вы используете? –

ответ

0

Использование LIKE:

select * 
from tableA ta 
join tableB tb on tb.description like '%' + ta.server_name + '%' 

+ является конкатенация SQL Server. У ANSI SQL есть ||, а у других есть concat.

Расширенная версия, добавить пробел перед/после:

select * 
from tableA ta 
join tableB tb on ' ' + tb.description + ' ' like '% ' + ta.server_name + ' %' 

Заботится тест Мэтт Гибсон/величайший пример тоже.

+0

Хотя, конечно, если 'ta.server_name' является« тестом », а' tb.description' является «самым большим сервером в мире!» это будет соответствовать, так ли это будет работать отлично, зависит от того, какой материал фактически находится в 'описании'. –

+0

Я использую SQL-сервер, поэтому я попробовал + вместо || –

+0

Мэтт - Я знаю, что это будет соответствовать, я просто пытаюсь получить несколько матчей в первую очередь. После выполнения запроса выше он составляет 10 минут и подсчитывает, и на нескольких 100 строках данных. –

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