У меня есть две таблицы в базе данных SQL Server 2008 в моей компании. Первая таблица представляет продукты, которые продает моя компания. Вторая таблица содержит данные производителя продукта. Эти таблицы определяются следующим образом:SQL Server 2008 - полный текст запроса
Product
-------
ID
Name
ManufacturerID
Description
Manufacturer
------------
ID
Name
Как вы можете себе представить, я хочу, чтобы сделать это как можно проще для наших клиентов, чтобы запросить эти данные. Однако у меня возникают проблемы с написанием прощающего, но мощного поискового запроса. Например, я ожидаю, что люди будут искать на основе фонетического написания. Из-за этого данные могут не совпадать с точными данными в моей базе данных. Кроме того, я думаю, что некоторые люди сначала будут искать имя производителя, но я хочу, чтобы имена соответствующих продуктов отображались первыми. Исходя из этих требований, я в настоящее время работаю над следующим запросом:
select
p.Name as 'ProductName',
m.Name as 'Manufacturer',
r.Rank as 'Rank'
from
Product p inner join Manufacturer m on p.ManufacturerID=m.ID
inner join CONTAINSTABLE(Product, Name, @searchQuery) as r
Как ни странно, этот запрос бросает ошибку. Однако я понятия не имею, почему. Справа от последней круглой скобки в студии управления. Наконечник инструмента говорит «Выражение небулевого типа, указанное в контексте, где ожидается условие». Я понимаю, что это означает. Однако, я думаю, я не знаю, как работает COntainsTable. Что я делаю не так?
Спасибо
У вас есть условие INNER JOIN, в которое вы не вставляете? (например, AS r ON p.ID = r. [KEY]) –