请问这个查询语句怎么写? 最好用存储过程 谢谢!
请问这个查询语句怎么写? 最好用存储过程 谢谢!
一,关键词表:(keyword)
kid keywords
1 中国
2 美国
3 法国
(注 keywords是由
content split得来)
二,页面表 (page)
pid url
content userid
1 http://www.hao123.com/index.html 该页面的文本内容 1
2 http://www.sina.com 该页面的文本内容 2
3 http://www.hao123.com/about.html 该页面的文本内容 1
4 http://www.163.com 该页面的文本内容 3
三,关键词分析表(fenxi)
id kid pid userid score
1 1 1 1 10
2 1 3 1 20
3 2 3 1 18
4 3 4 3 16
搜索数据的时候先到关键词表找到对应的关键词 然后到关键词分析表根据kid找到匹配的页面ID(即pid) 按照score从高到低排序 最后把页面表(即page表)的数据全部显示出来!(显示的时候按照userid分组)
------解决方案--------------------SQL code
create proc getPage
(
@keyword nvarchar(20),
@page nvarchar(100) output
)
as
begin
select @page = p.pid + ',' + p.url + ',' + p.content + ',' + p.userid
from keyword k,
fenxi f,
page p
where k.kid = f.kid
and f.pid = p.pid
and k.keywords = @keyword
order by f.score
end