日期:2014-05-17  浏览次数:20813 次

求一条sql语句:同时查询两个表
代码示例:
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