我知道这一定是在这之前得到的答案,但我根本找不到匹配的问题。多对多数据关系的文本搜索
使用LIKE '%keyword%'
,我想要搜索MSSQL数据库中的多对多数据关系,并将其减少为一对一的结果集。这两个表通过链接表连接起来。下面是我在谈论的一个非常简化的版本:
Books:
book_ id title
1 Treasure Island
2 Poe Collected Stories
3 Invest in Treasure Islands
Categories:
category_id name
1 Children
2 Adventure
3 Horror
4 Classic
5 Money
BookCategory:
book_id category_id
1 1
1 2
1 4
2 3
2 4
3 5
我想要做的就是寻找在标题短语(如'%treasure island%'
)并获得包含搜索字符串和单相符的书籍记录最高匹配Categories
与每本书相关的记录 - 我想放弃较小的类别记录。换句话说,我在寻找这样的:
book_id title category_id name
1 Treasure Island 4 Classic
3 Invest in Treasure Islands 5 Money
有什么建议?
由于一吨的回答!你的答案和@N West的答案给了我完全我想要的,并且在完全测试之后,我看不到速度差异(我拥有的数据样本不是很大,所以也许性能问题也不会出现)。所以这两个答案看起来都是相同的,但是因为@N West对社区来说比较新,所以我给了他(或她)这个复选标记。再次,非常感谢! – Andrew 2012-02-07 15:10:04