欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

终于学会了Access全站搜索(产品表、新闻表混合)(图片)

程序员文章站 2022-05-21 22:52:37
...

这是今天的大喜事! 我企盼已经久的一个问题终于得到解决了! 以前需要对一个企业网站进行全站搜索的时候,如果是sql server,那就用临时表,把产品表和新闻填充到临时表然后再从临时表中搜索,如果是access,那就没有办法了,因为很多资料都说了access不支

这是今天的大喜事!

我企盼已经久的一个问题终于得到解决了!

以前需要对一个企业网站进行全站搜索的时候,如果是sql server,那就用临时表,把产品表和新闻填充到临时表然后再从临时表中搜索,如果是access,那就没有办法了,因为很多资料都说了access不支持临时表。

昨天下午,在用asp.net做一个access的项目,其中Repeater不支持分页,access也不支持存储过程。DataSet也不支持分页,最后只好在sql语句上寻找办法了。经过反复的研究,最后找到一个办法并且成功通过了。在这个过程中,用到一个UNION,在这个应用中,UNION是把同一个表的两个查询结果合并在一起的。我在反复的思考过程中想到了,能不能把两个不同的表合并到一起呢?

想过了之后,就决定动手做一下,找到以前某个网站的数据里,里面有[News]和[Products]两个表。然后分别从两个各自取出几个字段尝试合并,第一次出现个问题,就是两个查询的列数不同,不能合并,这是我的疏忽,改正之后竟然成功了。心中大喜。马上继续试验,再用AS添加了一个名称为‘t’的列,用来标识每一列的来源,因为,对于这两个表的数据查询结果虽然需要合并,但是查询之后再显示到网页上,点击之后应该链接到不同的程序上显示详细的地址,所以还要是需要区分的。于是最后的结果就是下面这条:

终于学会了Access全站搜索(产品表、新闻表混合)(图片)

select Id,[P_Name],[P_Update],'product' AS t From [product]
UNION ALL
select id,N_title,N_Update,'news' AS t From [News]

需要注意的就是,这样的结果,会是4列,4列的名称分别是id,P_Name,P_Update,t。N_title这个名称就不再使用了。所以是下面的结果

终于学会了Access全站搜索(产品表、新闻表混合)(图片)

如果想要得到更理想的结果那就给列用AS起上相应的别名:

select Id,[P_Name] AS [Title],[P_Update] AS [PubDate],'product' AS t From [product]
UNION ALL
select id,N_title,N_Update,'news' AS t From [News]

终于学会了Access全站搜索(产品表、新闻表混合)(图片)

终于学会了Access全站搜索(产品表、新闻表混合)(图片)