У меня есть следующие записи:
create table ft_test1
(
col1 int identity(1,1),
col2 varchar(max)
);
insert into ft_test1 values('John A Henry');
insert into ft_test1 values('Dsouza mak Dee');
insert into ft_test1 values('Smith Ashla Don');
create table ft_test2
(
col1 int identity(1,1),
col2 varchar(max)
);
insert into ft_test2 values('Mak');
insert into ft_test2 values('McKoy Obee Zen');
insert into ft_test2 values('Henry A John');
ИНДЕКС ПОЛНОГО ТЕКСТА Настройка:
Шаг 1: Создание уникального индекса
CREATE UNIQUE INDEX UIX_test1_Col1 ON ft_test1(col1);
CREATE UNIQUE INDEX UIX_test2_Col1 ON ft_test2(col1);
Шаг 2: Создание каталога
CREATE FULLTEXT CATALOG cat_ft
WITH ACCENT_SENSITIVITY = OFF
Шаг 3: Создание ИНДЕКСА FULLTEXT
CREATE FULLTEXT INDEX ON ft_test1
(col2 LANGUAGE 1033)
KEY INDEX UIX_test1_Col1
ON cat_ft
WITH STOPLIST = SYSTEM
CREATE FULLTEXT INDEX ON ft_test2
(col2 LANGUAGE 1033)
KEY INDEX UIX_test2_Col1
ON cat_ft
WITH STOPLIST = SYSTEM
Запрос: Я хочу сделать JOIN
между этими двумя таблицами путем сопоставления значений col2
и возврата значений таблицы ft_test1
.
Ожидаемый результат:
col2
------------
Dsouza mak Dee
John A Henry
Объяснение относительно ожидаемого результата:
- Первая запись должна отображаться, поскольку
mak
присутствует в обеих таблицах в col2
- Вторая запись также присутствует, но с перемешиванием.
Попробуйте:
SELECT t1.col2
FROM ft_test1 t1
INNER JOIN ft_test2 t2
ON CONTAINS(t2.col2, t1.col2);
Ошибка:
Msg 102,Уровень 15, состояние 1, строка 4 Неверный синтаксис рядом с 't1'.