注册 登录
编程论坛 ASP技术论坛

数据库问题 同时查询2个表出错

bajun 发布于 2008-09-25 13:33, 1465 次点击
<%
           dim nt
           nt = request.QueryString("nt_upid")
           sql = "select * from Eas_News_Type where nt_upid ="&nt&""
           set rs = ado_query(sql,conn)
           while not rs.eof
          %>
      
          <table width="100%" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td width="6%"><div align="center"><img src="Images/PRODUCTS-7-Customized _r5_c4_r5_c4.png" width="17" height="14" /></div></td>
            <td width="94%"><span style="font-size: 12px"><a href="product.asp?ns_ntid=<%=rs("nt_id")%>"><%=rs("nt_title")%></a></span></td>
          </tr>
        </table>
         <%
               rs.movenext
                wend
              %>

ns_ntid是另外一个表里面的字段 我该怎么写这个语句呢?
10 回复
#2
lili06102008-09-25 13:44
可以再查询一次数据库啊
#3
bajun2008-09-25 13:59
<%
           dim nt
           nt = request.QueryString("nt_upid")
           sql = "select * from Eas_News_Type where nt_upid ="&nt&""
           set rs = ado_query(sql,conn)
           while not rs.eof
          %>
          <%
          sql = "select * from Eas_News_List "
           set rs = ado_query(sql,conn)
          %>
          <table width="100%" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td width="6%"><div align="center"><img src="Images/PRODUCTS-7-Customized _r5_c4_r5_c4.png" width="17" height="14" /></div></td>
            <td width="94%"><span style="font-size: 12px"><a href="product.asp?ns_ntid=<%=rs("nt_id")%>"><%=rs("nt_title")%></a></span></td>
          </tr>
        </table>
         <%
               rs.movenext
                wend
              %>
会报错 提示未找到项目
#4
awke0022008-09-25 14:52
你可以用两个数据集来操作啊 !!
既然是不同表 ,那就用两个数据集啊
#5
hmhz2008-09-25 14:55
rs.open "select * from Eas_News_Type where nt_upid ="&nt&" union all select * from Eas_News_List where nt_upid ="&nt,conn,1,1
#6
bajun2008-09-25 15:04
<%
           dim nt
           nt = request.QueryString("nt_upid")
           sql = select * from ("select * from Eas_News_Type where nt_upid ="&nt&" union all select * from Eas_News_List where ns_ntid > 80")
           set rs = ado_query(sql,conn)
           while not rs.eof
         %>
这样写报错
#7
hmhz2008-09-25 15:25
谁教你那样写,自作聪明了吧
#8
lili06102008-09-25 16:03
mysql="select * from 表1"
rs.open mysql,conn,1,1

sql="select * from 表2"
rs1.open sql,conn,1,1
response.write rs("name")
response.write rs1("tel")

这样不就行了,你就不能变通一下啊,RS不能一样的
得到值以前再关闭,记录集和数据库就行了
最好不要有太多查询在一个页面中
不然速度会很慢的
#9
hmhz2008-09-25 17:50
楼上的,你两个不同的rs必须两张表格来放不同rs的数据,不能两个rs的数据放在一张表的,什么叫联合查询呢,就是把两张或两张以上表的数据在同一个表格中排序显示,就等于是把所有表当作一个表来显示,你那样就不行了,多个表的数据都分开了
#10
bajun2008-09-26 09:00
我的连接里面要用到ns_ntid,而ns_ntid不在Eas_News_Type 这个表里面,
也就是ns_ntid缺少定义, 我该怎么定义ns_ntid 为另外一个表里面的字段。
#11
hmhz2008-09-26 15:28
rs.open "select ns_ntid as id from Eas_News_Type where nt_upid ="&nt&" union all select ms_mtid as id from Eas_News_List where ms_mtid ="&nt,conn,1,1

ns_ntid 和 ms_mtid 都转成一个id就可以调用了

<%=rs("id")%>
1