asp网站进行多表联合查询并根据时间统一排序显示
asp网站中我们可能会遇到要查两个表甚至多个表的数据并且根据数据添加时间排序的情况。
这种情况如果有相同字段的话会很容易解决,但是如果两个表完全没有关系,只是信息类型相同,比如说本博客的日志评论和照片评论就是放在两个表里,这两个表里没有任何相同或关联字段,如果我想要关联查询这两个表的内容,然后以评论时间排序显示出来该怎么办呢?
这个问题其实在写源码之初我就想过,就是右侧的“互动信息”那个模块,只是那个时候没有解决,所以显示就做了“日志”和“照片”两个部分分别显示,但是今天终于解决了关联查询显示的问题,下面来说一下。
其实这个代码还是比较简单的,而且是根据Access里面“查询设计”这个功能写出来的代码,所以在连接数据库获取信息这方面完全没问题。
首先我们假设两个表为
rizhipinglun(r_id,r_name,r_neirong,r_time)
zhaopianpinglun(z_id,z_name,z_neirong,z_time)
获取数据的代码就可以这样写:
<%
set rs=server.createobject("adodb.recordset")
sql="select * from(select r_id,r_name,u_neirong,r_time from rizhipinglun UNION ALL select z_id,z_name,z_neirong,z_time from web_images_comment) ORDER BY r_time DESC;"
rs.open(sql),conn,1,1
do while not rs.eof
r_id=rs("r_id")
r_name=rs("r_name")
r_neirong=rs("r_neirong")
r_time=rs("r_time")
%>
显示的代码就是:
<%=r_name%>在<%=r_time%>评论:<%=r_neirong%>(用户在XX时间评论:XXXXXXXX)
有的同学可能就问了,那我怎么知道这条评论是日志评论还是照片评论,这个问题其实也好解决,就是在rizhipinglun和zhaopianpinglun这两个表里分别添加一个字段进行标记,比如说添加一个r_biaoji和z_biaoji字段,日志给标记为1,照片标记为2,查询的时候添加进查询语句里
sql="select * from(select r_id,r_biaoji,r_name,u_neirong,r_time from rizhipinglun UNION ALL select z_id,z_biaoji,z_name,z_neirong,z_time from web_images_comment) ORDER BY r_time DESC;"
显示的时候判断一下:
<%if r_biaoji=1 then %>
日志:<%=r_name%>在<%=r_time%>评论:<%=r_neirong%>(日志:用户在XX时间评论:XXXXXXXX)
<% end if%>
<%if r_biaoji=2 then %>
照片:<%=r_name%>在<%=r_time%>评论:<%=r_neirong%>(日志:用户在XX时间评论:XXXXXXXX)
<% end if%>
这样就可以完美区分了。
本文暂无评论,快来抢沙发吧!
发表评论