要查询帖子的附件, 如何写sql查询语句啊..急啊.. 下面是附件表的一些说明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了要查询帖子的附件, 如何写sql查询语句啊..急啊.. 下面是附件表的一些说明相关的知识,希望对你有一定的参考价值。

表pre_forum_thread 帖子id, 帖子标题
tid subject

表pre_forum_attachment 附件id,主题id,帖子id,分表id,下载次数
aid pid tid tableid downloads

表pre_forum_attachment_0-9 附件id,主题id,帖子id, 附件价格, 是否图片
aid pid tid price isimage

pre_forum_thread 表作为保存帖子标题跟ID等
pre_forum_attachment 表作为保存附件 id 与真实附件信息资料的索引存在。表中存储的数据有
附件id,主题id,帖子id,分表id,下载次数

pre_forum_attachment_0-9 分表 作为真实的保存附件的数据表,其中的数据包括原来的附件表中所有信息,同时还有原来的附件资料表中的数据,比如附件描述等。这里是由 tid 最后一位来决定附件要保存在哪个分表里面的。 isimage为0时为不是图片附件,为1则是图片附件.

我要判断附件不是图片isimage=0的就显示 帖子标题 附件价格

http://zhidao.baidu.com/question/323012537.html?quesup1
这里是我另一个帖子提问,帮我解答任何一个,2个分数都全部送上.谢谢了..

select a.aid,a.pid,a.tid,a.price,a.isimage from
pre_forum_attachment_0-9 as a,
pre_forum_thread as t
where a.tid=t.tid and a.isimage=0
这样就把帖子id为tid的附件所有信息查出来了,没那么复杂吧。
我觉得你纠结的是显示问题,可以不加a.isimage=0 的条件,在查询后页面代码控制实际显示。
有其他疑问,请追问。。。追问

我是新手,刚学,不是很明白.
pre_forum_attachment_0-9 这里是从pre_forum_attachment_0 到pre_forum_attachment_9
不是一个表哦.比如帖子ID是36,它的尾数是6,那么这个帖子的附件所在表就是pre_forum_attachment_6

追答

看我的另一个回答

参考技术A 一个贴子下可能有多个附件,这些附件可能是图片也可能不是,这种情况下怎么处理?追问

先说明一下pre_forum_attachment_0-9 分表里面这里是10个表哦.根据tid最后一个数字分别存附件的.
isimage字段就是判断是否是图片的.
isimage=0 不是图片附件.
isimage=1 是图片附件.
我现在就是要输出所有isimage=0 的附件的价格跟标题.

追答

这是在网上查出来的,就是简单的用union联合10个表的查询,稍微改了一下,and a.fid in(5,151) 大概是用来控制仅输出哪几个版块的,如果你想输出所有版块,也可以去掉,最后的rows="1" 大概是用来控制最终需要几条数据的,应该可以改成你需要的,比如10条,rows="10"
get dbsource="dzx" sql="SELECT a.id,a.subject,b.price FROM `pre_forum_post`a ,(SELECT * FROM `pre_forum_attachment_0` union SELECT * FROM `pre_forum_attachment_1` union SELECT * FROM `pre_forum_attachment_2` union SELECT * FROM `pre_forum_attachment_3` union SELECT * FROM `pre_forum_attachment_4` union SELECT * FROM `pre_forum_attachment_5` union SELECT * FROM `pre_forum_attachment_6` union SELECT * FROM `pre_forum_attachment_7` union SELECT * FROM `pre_forum_attachment_8` union SELECT * FROM `pre_forum_attachment_9`) b where a.tid=b.tid and b.isimage =0 and a.invisible=0 and a.fid in(5,151) order by a.dateline desc" rows="1"

$r[subject]
str_cut($r[message], 50)[详细]

/get

追问

感谢回复.这样的就需要查询所有附件表的信息了,效率上来说不行,我需要的是根据帖子TID来判断附件在哪个附件表里,然后读取,

以上是关于要查询帖子的附件, 如何写sql查询语句啊..急啊.. 下面是附件表的一些说明的主要内容,如果未能解决你的问题,请参考以下文章

sql语句查询结果如何大写?结果如何拼接啊?

sql语句拼接字段后再模糊查询如何写啊?

C#中 SQL语句 带参数的like 查询怎么写

如何写sql语句去掉oracle返回结果中的空值(NULL)

要提高SQL查询效率where语句条件的先后次序应如何写

要提高SQL查询效率where语句条件的先后次序应如何写