【发布时间】:2009-10-15 13:45:20
【问题描述】:
我有 3 张桌子,
tblBook(BookID, ISBN, Title, Summary)tblAuthor(AuthorID, FullName)tblBookAuthor(BookAuthorID, BookID, AuthorID)
tblBookAuthor 允许一本书有多个作者,一个作者可以写任意数量的书。
我正在使用全文搜索来搜索基于单词的排名:
SET @Word = 'FORMSOF(INFLECTIONAL, "' + @Word + '")'
SELECT
COALESCE(ISBNResults.[KEY], TitleResults.[KEY], SummaryResults.[KEY]) AS [KEY],
ISNULL(ISBNResults.Rank, 0) * 3 +
ISNULL(TitleResults.Rank, 0) * 2 +
ISNULL(SummaryResults.Rank, 0) AS Rank
FROM
CONTAINSTABLE(tblBook, ISBN, @Word, LANGUAGE 'English') AS ISBNResults
FULL OUTER JOIN
CONTAINSTABLE(tblBook, Title, @Word, LANGUAGE 'English') AS TitleResults
ON ISBNResults.[KEY] = TitleResults.[KEY]
FULL OUTER JOIN
CONTAINSTABLE(tblBook, Summary, @Word, LANGUAGE 'English') AS SummaryResults
ON ISBNResults.[KEY] = SummaryResults.[KEY]
上面的代码可以很好地用于搜索tblBook 表。但现在我还想根据搜索的关键字搜索表 tblAuthor。
你能帮我解决这个问题吗?
【问题讨论】:
标签: sql sql-server tsql full-text-search