我有两个 SQL Server 表作者和文章,其中作者主键 (AuthorID) 是文章表中的外键,以表示作者和文章表之间的简单一对多关系。现在问题来了,我需要根据名字、姓氏和传记列对作者表进行全文搜索。全文搜索工作很棒,排名等等。现在我需要在搜索中再添加一个条件,我需要从搜索中忽略所有非文章贡献者。为了实现这一点,我选择创建一个包含所有有文章的贡献者的视图,并针对该视图进行搜索。所以我以这种方式创建了视图:
Create View vw_Contributors_With_Articles
AS
Select * from Authors
Where Authors.ContributorID
IN ( Select Distinct (Articles.ContributorId) From Articles)
它正在工作,但我真的不喜欢子查询。加入让我得到了所有多余的 authorID,尝试了不同的但没有使用 biography 列,因为它的类型是 ntext。Group by 不会为我做这件事,因为我需要所有列而不是它们的任何聚合。
你们觉得怎么样?我该如何改进呢?