У меня есть два автора таблиц SQL Server и статьи, где первичный ключ авторов (AuthorID) - это внешний ключ в таблице статей, представляющий простое отношение один-ко-многим между авторами и таблицей статей. Теперь вот проблема, мне нужно выполнить полнотекстовый поиск по таблице авторов на основе имени, фамилии и столбцов биографии. Полнотекстовый поиск работает потрясающе и ранжируется и все. Теперь мне нужно добавить еще один критерий к моему поиску, мне нужно, чтобы все авторы, не являющиеся авторами статей, игнорировались из поиска. Чтобы добиться этого, я решил создать представление со всеми участниками, у которых есть статьи, и выполнить поиск по этому представлению. Поэтому я создал вид так:
Create View vw_Contributors_With_Articles
AS
Select * from Authors
Where Authors.ContributorID
IN ( Select Distinct (Articles.ContributorId) From Articles)
Это работает, но мне действительно не нравится подзапрос. Объединение дает мне все избыточные идентификаторы authorID, пробовал разные, но не работал со столбцом биографии, так как его тип - ntext. Group by не сделает это для меня, потому что мне нужны все столбцы, а не их совокупность.
Как вы думаете, ребята? Как я могу улучшить это?