如何用存储过程将两个表中查询到的信息结合起来

yutaozj 2007-10-06 05:31:47
有一张‘信息’表如下:

id 标题 关键字 用户名
------------------------------------
1 卖电视了 电视 123@163.com
2 要修电脑 电脑 j@163.com
3 天鹅洗衣机 洗衣机 54@sohu.com


另一张‘关键字’表结构如下:
id 标题 关键字 价格 用户名
--------------------------------------
1 卖电视了 电视 500.00 123@163.com
2 天鹅洗衣机 洗衣机 1000.00 54@sohu.com

几点说明:
1.‘关键字’表中的所有信息都来自‘信息’表
2.‘信息’表中并不是所有的信息都会出现在‘关键字’表中
3.假设这两张表的数据量教大

实现要求:
1.当传入一个词之后,要先搜索‘关键字’表中标题字段和关键字字段里的内容是否模糊匹配传入的值,并且按价格从高到低排列,然后再搜索‘信息’表中标题字段和关键字字段的值是否模糊匹配传入的值,并且按ID号降序排列。
最后输出以上查找到的所有数据,并且能够分页显示。
2.用SQL SERVER 2000的存储过程实现。

望高手指点。
...全文
222 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yutaozj 2007-10-08
  • 打赏
  • 举报
回复
谢谢热心解答,哈哈刚好没认十分
dawugui 2007-10-07
  • 打赏
  • 举报
回复
select * from 所有详细产品 where id in
(
select id from 关键字表 where 关键字 = @input
union all
select id from 信息表 where 关键字 = @input
)
晓风残月0110 2007-10-07
  • 打赏
  • 举报
回复

select * from 所有详细产品
where id in
(select 关键字.id from 信息 left join 关键字 on 信息.id= 关键字.id)
ivan_ren 2007-10-07
  • 打赏
  • 举报
回复
select * from 关键字 where (标题 Like '%'+@var+'%' or 关键字 like '%'+@var+'%') order by 价格
union all
select id,标题,关键字,价格=0,用户名 from 信息表 where (标题 Like '%'+@var+'%' or 关键字 like '%'+@var+'%') order by id
yutaozj 2007-10-07
  • 打赏
  • 举报
回复
谢谢各位的解答。
假如现在是这么一个情况,只需要取得这两张表中的ID号,然后再在另一张‘所有详细产品’表中查询,输出这张表中对应上面查到的ID号的信息,‘所有详细产品’表中字段如下:
id proName proInfo proPrice ProCop .....

那该怎么做呢?
dawugui 2007-10-06
  • 打赏
  • 举报
回复
select * from 关键字表 where 关键字 = @input
union all
select id,标题,关键字,价格=0,用户名 from 信息表 where 关键字 = @input
中国风 2007-10-06
  • 打赏
  • 举报
回复
数据量大时,可以考虑建全文检索

select id, 标题 , 关键字 , 价格 , 用户名,row=1 from 关键字 where patindex('%电视%',标题 )>0
union all
select id, 标题 , 关键字 , 价格=0 , 用户名,row=2 from 信息 where patindex('%电视%',标题 )>0
order by row asc,价格 desc,ID asc

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧