查询另外表中的多个id

cp713 2010-07-28 07:55:19
Set lx=conn.execute("select * from sclass where NavLevel='"&Trim(Request.QueryString("id"))&"' order by PostTime desc"):Do until lx.eof
Sql="Select * From [sinfo] where ClassID="&rs("id")&" Order By NewsOrder asc"
lx.movenext:Loop:lx.close:set lx=nothing

这种写法是错误
rs("id")是循环输出多个的
我想查询classid=(sclass表中符合条件的id可能一个可能多个)的记录
怎么写
...全文
82 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2010-07-29
  • 打赏
  • 举报
回复
select * from sclass inner join [sinfo] on [sinfo].ClassID=sclass.id
where sclass.NavLevel= & Trim(Request.QueryString("id")) & order by PostTime desc
hahaxiaoa 2010-07-29
  • 打赏
  • 举报
回复

Sql="Select * From [sinfo] where ClassID in (select id from sclass where NavLevel='" & TrimOrder & ") By NewsOrder asc"



你的语法应当没什么问题,不过,你的语句似乎可以改成上面的样子
hai44687690 2010-07-29
  • 打赏
  • 举报
回复
当然也可以用3楼的联合查询,但注意返回的字段列表,他是一个两个表的交叉连接的结果集合
hai44687690 2010-07-29
  • 打赏
  • 举报
回复
Set lx=conn.execute("Select * From [sinfo] where ClassID in (select id from sclass where NavLevel='"&Trim(Request.QueryString("id"))&"' order by PostTime desc) Order By NewsOrder asc")
Do until lx.eof
lx.movenext
Loop
lx.close
set lx=nothing
用这个语句吧,不要反复查询数据库,那样性能会很低的,而且最好不要语句都罗列到一行(对性能没有什么提高的),将来检查错误时很困难。
即使你需要第一次的查询结果用来其他地方使用,也最好循环把ID连接成1,2,3这样的的再用
"Select * From [sinfo] where ClassID in (1,2,3) Order By NewsOrder asc"语句查询统一返回结果
ACMAIN_CHM 2010-07-28
  • 打赏
  • 举报
回复
Set lx=conn.execute("select * from sclass where NavLevel='"&Trim(Request.QueryString("id"))&"' order by PostTime desc")
Do until lx.eof
Sql="Select * From [sinfo] where ClassID="&rs("id")&" Order By NewsOrder asc"
lx.movenext
Loop
lx.close
set lx=nothing


语法上没有问题啊?什么问题。

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧