FullText使用SQL中的多个表进行搜索
发布时间:2020-05-24 13:45:28 所属栏目:MsSql 来源:互联网
导读:我有3张桌子, tblBook(BookID,ISBN,标题,摘要) tblAuthor(AuthorID,FullName) tblBookAuthor(BookAuthorID,BookID,AuthorID) tblBookAuthor允许一本书有多个作者,作者可能已经写了任意数量的书. 我使用全文搜索来搜索单词的排名基础: SET @Word = FORMSOF(IN
|
我有3张桌子, > tblBook(BookID,ISBN,标题,摘要) 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,@Word,LANGUAGE 'English') AS ISBNResults
FULL OUTER JOIN
CONTAINSTABLE(tblBook,Title,LANGUAGE 'English') AS TitleResults
ON ISBNResults.[KEY] = TitleResults.[KEY]
FULL OUTER JOIN
CONTAINSTABLE(tblBook,Summary,LANGUAGE 'English') AS SummaryResults
ON ISBNResults.[KEY] = SummaryResults.[KEY]
上面的代码适用于只搜索tblBook表.但是现在我想根据搜索到的关键词搜索表tblAuthor. 你能帮我解决这个问题吗? 解决方法您可以在tblAuthor上运行另一个SELECT / CONTAINSTABLE查询,将结果合并在一起,并使用另一个查询进行换行,该查询对Rank列上的Rank进行求和,以删除任何重复项,并将tblBook和tblAuthor的结果匹配得更高.我认为这将实现你正在尝试的东西. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – 在每个外键上添加索引的脚本?
- sql – 创建一个在Teradata中具有“with recursive”语句的
- sql-server – 我可以在2008服务器上使用SQL Server Manage
- sql-server-2008 – SSIS包中的数据转换问题 – 文本到GUID
- sql-server – 如何在一个查询中连接一列内连接中多行的字符
- 在键值存储中使用索引模拟数据库表的最简单方法是什么?
- sql – 删除为给定密钥求零的行
- sql – 选择DISTINCT,返回整行
- sql-server – 哪个工具来构建一个简单的Web前端到我的数据
- 命令行 – 学习SQL艰难的方法 – 在SQL Lite 3中使用.db创建
