代码示例:
- VBScript code
<% Dim RsReadNew Set RsReadNew = DB("[color=#0000FF]SELECT [id],[title],[content] FROM [table1],[table2] WHERE [userid]=5 AND [pass]=1 ORDER BY [xtime] DESC[/color]",2) If RsReadNew.Eof And RsReadNew.Bof Then response.write "暂无" Else Dim ReadNewN:ReadNewN = 0 Do While Not RsReadNew.Eof Response.Write "标题"&ReadNewN&":"&RsReadNew("title")&"<br>内容:"&RsReadNew("content") RsReadNew.movenext ReadNewN = ReadNewN + 1 If ReadNewN >= 8 Then Exit Do Loop End If RsReadNew.close:Set RsReadNew = Nothing %>
说明:
1、想从[table1]和[table2]两个表中查询userid=5且pass=1的最新8条数据(按xtime排序)
2、其中id,title,content,userid,pass和xtime这些字段是两个表都含有的,当然还有些其他字段是不同的
3、db()函数是我自定义好的数据库链接函数,这个是没问题。主要是那个sql语句该怎么写,用过union all,结果老是错误无法读取出来。请各位帮帮忙。谢谢啦。
------解决方案--------------------
union all 两边的sql取得的字段类型和名称都需要是一致的
------解决方案--------------------
两个表字段名称相同,无法识别你需要的是哪个表的字段,建议用外键连接两个表,免去重复字段
------解决方案--------------------
请教一下同事,相信比你发帖要快,因为我们没有你的数据库和环境,也测试不了
------解决方案--------------------
- SQL code
SELECT a.[id],a.[title],a.[content] FROM [table1] a,[table2] b WHERE a.userid = b.userid And a.[userid]=5 AND a.[pass]=1 ORDER BY a.[xtime] DESC