查看完整版本: 关于读取文章内容并同时读取文章分类名称的SQL语句

bhcode 2008-9-5 17:08

关于读取文章内容并同时读取文章分类名称的SQL语句

41024670 17:06:40
群主,能否帮我解答这个问题
asp读取文章数据并同时读取文章分类名称的sql语句
我还真的想不出怎样写出这语句来,
谢谢
BHCODE 17:07:59
select id,title,content,(select classname from article_class where article_class.id=classid) as cname from article where id=1
BHCODE 17:08:15
article_class是分类表
BHCODE 17:08:22
article是文章表
BHCODE 17:08:38
cname是查询得到的分类名称

bhcode 2008-9-5 17:44

根据提问者的代码进行了改进

<%
dim rs,title
set rs=server.CreateObject("ADODB.RecordSet")
rs.Source= "select top 6 NewsID,title,(select ClassName from QT_Classify where QT_Classify.ClassID=ChannelID) as cname from

QT_News  where  ChannelID=1  and isAccept=1 order by WriteTime desc,NewsID desc"
rs.Open rs.Source,ConnStr,3,1
if rs.eof and rs.bof then %>
document.write('没有');
<% else  
do while not rs.eof
title=trim(rs("title"))
title=replace(title,"<LI>","")
%>

                       
        <li>[<%=rs("cname")%>]<a href="Show_News.asp?id=<%=rs("NewsID")%>" class="class" title="<%=title%>"

target="_blank"><%=left(title,11)%></a></li>
<%
rs.movenext
loop
end if
Rs.Close
set Rs=nothing
%>

haiyun 2008-9-8 10:56

<%
dim rs,title
set rs=server.CreateObject("ADODB.RecordSet")
rs.Source= "select top 6 [color=red]*  from[/color] QT_News  where  ChannelID=22  and isAccept=1 order by WriteTime desc,NewsID desc"
rs.Open rs.Source,ConnStr,3,1
if rs.eof and rs.bof then %>
document.write('没有');
<% else  
do while not rs.eof
title=trim(rs("title"))
title=replace(title,"<LI>","")
%>
                        
        <li><a href="Show_News.asp?id=<%=rs("NewsID")%>" class="class" title="<%=title%>"
target="_blank"><%=left(title,11)%></a></li>
<%
rs.movenext
loop
end if
Rs.Close
set Rs=nothing
%>


这程序代码能查询并显示6条文章的标题,没有任何错误的提示。但是群主对代码的修改后,修改后的程序代码如下:

<%
dim rs,title
set rs=server.CreateObject("ADODB.RecordSet")
rs.Source= "select top 6 [color=red]NewsID,title,(select ClassName from QT_Classify where QT_Classify.ClassID=ChannelID) as cname[/color] from QT_News  where  ChannelID=22  and isAccept=1 order by WriteTime desc,NewsID desc"
rs.Open rs.Source,ConnStr,3,1
if rs.eof and rs.bof then %>
document.write('没有');
<% else  
do while not rs.eof
title=trim(rs("title"))
title=replace(title,"<LI>","")
%>
                        
        <li>[<%[color=red]=rs("cname")%[/color]>]<a href="Show_News.asp?id=<%=rs("NewsID")%>" class="class" title="<%=title%>"
target="_blank"><%=left(title,11)%></a></li>
<%
rs.movenext
loop
end if
Rs.Close
set Rs=nothing
%>

其中:
QT_News 是文章表,内有:NewsID,ClassID,title,,,,,,
NewsID是文章表QT_News的文章ID
title是文章表QT-News的文章的标题
QT_Classify是(文章分类)类型表
ClassName是类型表QT-Classify中所对应的类型名
ClassID是类型表QT-Classify中类型的ID
ChannelID是频道分类。


出现了错误提示如下:


错误类型:
Microsoft JET Database Engine (0x80004005)
子查询最多能返回一个记录。
[b]/fei/1.asp, 第 11 行[/b]

浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)

bhcode 2008-9-8 11:04

把代码打包放上来,我调试一下

haiyun 2008-9-9 08:40

代码已打包发给你了,期待你的修改.谢谢

bhcode 2008-9-9 08:49

rs.Source= "select top 6 NewsID,title,(select ClassName from QT_Classify where QT_Classify.ClassID=QT_News.ClassID) as cname from QT_News  where  ChannelID=22  and isAccept=1 order by WriteTime desc,NewsID desc"

改成上面这样

haiyun 2008-9-9 09:26

谢谢站长,问题已解决了.
下一步学习,,,将在这文章分类加上链接,先研究下...
页: [1]
查看完整版本: 关于读取文章内容并同时读取文章分类名称的SQL语句