gpt4 book ai didi

sql - 在 SQL 中使用多个表进行全文搜索

转载 作者:行者123 更新时间:2023-12-02 13:29:02 25 4
gpt4 key购买 nike

我有 3 张 table ,

  1. tblBook(BookID、ISBN、标题、摘要)
  2. tblAuthor(作者 ID, 全名)
  3. 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

你能帮我解决这个问题吗?

最佳答案

您可以在 tblAuthor 上运行另一个 SELECT/CONTAINSTABLE 查询,将结果合并在一起并与另一个查询包装在一起,该查询对键列上的排名进行求和,以删除任何重复项,并将结果与​​ tblBook 和 tblAuthor 匹配得更高。

我认为这将实现您想要做的事情。

关于sql - 在 SQL 中使用多个表进行全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1572482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com