文章目录:
asp 多表查询
假设3个客户表为:
vip客户表: ID cName , addr , ...
长期客户表: ID cName , addr , ...
临时客户表: ID cName , addr , ...
假设相同字段有 id cName , addr
那么一条SQL就可以实现查询了:
select id , cName , addr from vip客户表 where cName like %张三%
union all
select id , cName , addr from 长期客户表 where cName like %张三%
union all
select id , cName , addr from 临时客户表 where cName like %张三%
显示结果:
ID cName Addr
----------------------------------
001 张三元 广东遂溪
262 张三丰 广东霞山
503 张三 广东赤坎
---------------------------------
寻求多条件站内搜索asp源码(250分)
楼主你好:
针对你的问题,我已经写好ASP代码,支持多条件查询和模糊查询,包括分页代码都写好了,100%能用!
注意:表中各字段名我暂时用的中文,就是你提到的:"标题、内容、发布者" ,为的是让你理解,但你实际应用中,最后不要将字段名设为中文,改成英文吧!
查询及显示查询结果的代码如下:
%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="server.mappath("数据库名.mdb")
%
%
sql88="select * from 数据表名 where "
if trim(request("bt"))"" then
sql88= sql88 "标题 like '%"trim(request("bt"))"%' and "
end if
if trim(request("nr"))"" then
sql88= sql88 "内容 like '%"trim(request("nr"))"%' and "
end if
if trim(request("fbz"))"" then
sql88= sql88 "发布者 like '%"trim(request("fbz"))"%' and "
end if
sql88= sql88 " 1=1 "
set rs88=server.createobject("adodb.recordset")
rs88.PageSize = 2 '这里设定每页显示的记录数
rs88.CursorLocation = 3
rs88.Open sql88,conn,0,2,1 '这里执行你查询SQL并获得结果记录集
pre = true
last = true
page = trim(Request.QueryString("page"))
if len(page) = 0 then
intpage = 1
pre = false
else
if cint(page) = 1 then
intpage = 1
pre = false
else
if cint(page) = rs88.PageCount then
intpage = rs88.PageCount
last = false
else
intpage = cint(page)
end if
end if
end if
if not rs88.eof then
rs88.AbsolutePage = intpage
end if
%
form action="search.asp" method="post" name="form1"
table width="650" border="1" cellpadding="0" cellspacing="0" align="center"
/tr
td height="20" align="center" colspan="2"查询条件(填写任意一项或几项均可查询,支持模糊查询)/td
/tr
tr bgcolor="#F2E1CC"
td height="20" align="center"标题/td
td height="20" align="center" input type="text" name="bt" size="15" / /td
/tr
/tr
td height="20" align="center"内容/td
td height="20" align="center" input type="text" name="nr" size="15" / /td
/tr
/tr
td height="20" align="center"发布者/td
td height="20" align="center" input type="text" name="fbz" size="15" / /td
/tr
/tr
td height="20" align="center" colspan="2"input type="submit" name="submit" value="查询" //td
/tr
/table
br
hr align="center" width="650"
br
table width="650" border="1" cellpadding="0" cellspacing="0" align="center"
%
if rs88.recordcount0 then
for i=1 to rs88.PageSize
if rs88.EOF or rs88.BOF then exit for
%
tr
td height="25" align="left"%=i%. %=rs88("标题")%/td
/tr
%
rs88.movenext
next
else
%
tr
td height="20" align="center" colspan="7"对不起,没有符合查询条件的学生信息!/td
/tr
%
end if
%
/table
table width="650" border="1" cellpadding="0" cellspacing="0" align="center"
tr bgcolor="#DFDFDF"
td align="center" height="30"
%if rs88.pagecount 0 then% 共%=rs88.recordcount%条记录 每%=rs88.PageSize%个/页 当前页: %=intpage%/%=rs88.PageCount% %else% 当前页: 0/0 %end if%
a href="search.asp?page=1"首页/a |
%if pre then%
a href="search.asp?page=%=intpage -1%" 上一页/a | %end if%
%if last then%
a href="search.asp?page=%=intpage +1%" 下一页/a | %end if%
a href="search.asp?page=%=rs88.PageCount%"尾页/a | 转到第
select name="sel_page" onChange="javascript:location=this.options[this.selectedIndex].value;"
%
for i = 1 to rs88.PageCount
if i = intpage then%
option value="search.asp?page=%=i%" selected%=i%/option
%else%
option value="search.asp?page=%=i%"%=i%/option
%
end if
next
%
/select 页 /font
/td
/tr
/table
/form
%
rs88.close
set rs88=nothing
conn.close
set conn=nothing
%
请复制上面的代码,保存为:search.asp ,希望你能满意!!!
如果有不明白的地方请用百度HI我!
asp多表查询
这个好办!多层次查询,一个子集一个父集.打开两个数据表就行.
核心代码是这样的:
set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from [file]"
rs.open sql,conn,1,2
set rs1=Server.CreateObject("ADODB.Recordset")
sql1="select * from [leibie] where [id]="rs("tit")
rs1.open sql1,conn,1,2
do while (not rs.EOF)
response.write(""rs("id")" "rs1("bid")" "rs("category")" "rs("come")" "rs("writer")" "rs("body")" "rs("visit")" "rs("time")"br/")
rs.movenext
loop
剩下的就自己去写了.
l88= sql88 "发布者 like '%"trim(request("fbz"))"%' and " end if sql88= sql88 " 1=1 " set rs88=server.createobjec
nd if sql88= sql88 " 1=1 " set rs88=server.createobject("adodb.recordset") rs88.PageSize = 2 '这里设定每页显示的记录
Request.QueryString("page")) if len(page) = 0 then intpage = 1 pre = false else if cint(page) = 1 then intpage = 1 pre = false else if cin
ql1,conn,1,2do while (not rs.EOF)response.write(""rs("id")" "rs1("bid")" "rs("category")" "rs("come")" "rs("writer")" "rs(
_page" onChange="javascript:location=this.options[this.selectedIndex].value;" % for i = 1 to