sql="select * from Dv_bbs1 where isupload=1  order by AnnounceID desc" 
set rs=conn.execute(sql)sql2="select * from Dv_Topic where Child>10 and TopicID="&rs("RootID")&""
set rs1=conn.execute(sql2)sql3="select * from Dv_upfile where F_BoardID="&rs1("BoardID")&" and F_Readme='"&rs1("title")&"' and F_Username='"&rs1("PostUserName")&"'"
set rs2=conn.execute(sql3)就是三个表的查询语句,可以写成一句吗?

解决方案 »

  1.   

    用union all连接.但三个表的结果集字段数目要一致,而且类型相匹配sql="select * from Dv_bbs1 where isupload=1  order by AnnounceID desc" 
    //set rs=conn.execute(sql)sql2="select * from Dv_Topic where Child>10 and TopicID="&rs("RootID")&""
    //set rs1=conn.execute(sql2)sql3="select * from Dv_upfile where F_BoardID="&rs1("BoardID")&" and F_Readme='"&rs1("title")&"' and F_Username='"&rs1("PostUserName")&"'"
    //set rs2=conn.execute(sql3)
    set rs2=conn.execute(sql+"union all"+sql2+"union all"+sql3)
      

  2.   

    select a.AnnounceID ,a.isupload,b.Child,b.TopicID,a.RootID,c.F_BoardID,b.BoardID,c.F_Readme,b.title ,c.F_Username, from Dv_bbs1 a,Dv_Topic b,Dv_upfile c where a.isupload=1 and b.Child>10 and b.TopicID=a.RootID,b.PostUserName   and c.F_BoardID=b.BoardID and  c.F_Readme=b.title c.F_Username=b.PostUserName order by a.AnnounceID desc