动网论坛代码分析 -- 嵌套查询

动网论坛

在动网论坛中,用户登录以后,论坛菜单下方会多出两条链接,即:“我发布的主题”和“我参与的主题”。前者的查询简单一些,只需要查询登录用户发布的主题就行,可以写成“Select 主题 贴子表 where 作者=登录用户名”就行了,但后一条就麻烦一些了。这里假使主题贴和回复贴都是在一个数据表中,每条记录只用一个字段区分开来是主题贴和回复贴,我就是这样做的。我们知道,通常情况下,发布回复的时候,是可以省略标题的,假使我们如前一条一样搜索的话,得出的搜索结果中是没有标题这一项的,这样就无法显示出来,所以必须显示该回复对对应的贴子的主题。这个查询又是怎么来做的呢?
我们先来看一看动网的代码:

"select top 200 * from topic where topicid in (select top 200 rootid from "&NowUseBBS&" where postuserid="&userid&" order by announceid desc) order by topicid desc"

这个查询中为什么有小括号呢?是什么意思?且听在下继续分解。

我们一般用到的查询都是单层查询,而上面这段查询却是两层,它要求服务器在处理最终查询工作之前先生成一个结果,然后根据当前的查询结查再进一步继续下面的查询工作,也就是说,先执行小括号内的查询(我们称之为子查询),然后服务器才开始执行外面的查询,返回正确的结果,这种查询称为嵌套查询。上面的这个查询,第一层查询是查登录用户在本版发布过的所有贴子(含回复),然后再查这些贴子的主题。

除了上面这个功用之外,嵌套查询还有什么好处呢?如果要求在搜索的匹配条件中使用统计函数(这在分析统计数据中经常用到),可以使用嵌套查询。比如说,现在要求查询所有销售量大于平均销售量的书的代号,如果写成下面的查询方式:

SELECT title_id,qty //title_id为书号,qty为销售量
From sales
Where qty>avg(qty) //avg为平均数函数,avg(qty)即为平均销售量

服务器将会提示错误,因为,在where子句中不许直接对本SELECT列表的数据使用统计函数。通过在where子句中使用嵌套查询可以解决这个问题,语法如下:

SELECT title_id,qty
FROM sales
WHERE qty>
    (SELECT avg(qty) FROM sales)

时间: 2024-10-01 05:22:08

动网论坛代码分析 -- 嵌套查询的相关文章

ASP:动网论坛代码分析

    在动网论坛中,用户登录以后,论坛菜单下方会多出两条链接,即:"我发布的主题"和"我参与的主题".前者的查询简单一些,只需要查询登录用户发布的主题就行,可以写成"Select 主题 贴子表 where 作者=登录用户名"就行了,但后一条就麻烦一些了.这里假使主题贴和回复贴都是在一个数据表中,每条记录只用一个字段区分开来是主题贴和回复贴,我就是这样做的. 我们知道,通常情况下,发布回复的时候,是可以省略标题的,假使我们如前一条一样搜索的话,得

为动网论坛添加一个密码嗅探器(DVBBS)_漏洞研究

动网先锋论坛,凭借其强大全面的功能,再加上它免费提供给个人用户,在网络众多论坛中,独树一帜.很多人都把它作为自己论坛的最佳首选.但是新版本的论坛,对用户密码采用了不可逆的MD5加密,即使是管理员,也无法查询到个人用户的密码.再数据库中只能查询了加密后的结果.   先描述一下它得登陆过程,用户输入帐号后号,调用MD5函数,输入的密码加密,然后比较存储在数据库的数据和密码加密的结果是否相同.如果相同,登陆成功,将个人信息保存在COOKIE中.   现在我们要自己动手,为论坛增加一项记录密码的功能. 

网动天下—访动网论坛创始人宋海波

2000年,两个非计算机专业的孩子因为喜欢编程而开发互联网论坛产品-- 2005年,他们因为开发了系列论坛产品而有了价值5000多万元的公司,每月收入平均20多万元,这是一个互联网创业的故事. 现在,互联网又迎来创业的高潮,我们记者采访到"动网论坛"的创始人,用他们的创业故事鼓励现在准备和想要在这个新的互联网大环境中创业和开辟一段自己历史的人. 李智超和宋海波 在现在热得不得了的Web2.0之前,论坛似乎是互联网唯一的虚拟社会基础,一个论坛就像一个虚拟的世界,而它的成员则由许许多多在这

抓取动网论坛Email地址的一段代码

抓取动网论坛 Email 地址的一段代码 /** 作者: 慈勤强 Email : cqq1978@gmail.com http://blog.csdn.net/cqq **/ 最近,一直想着怎么宣传我们的新网站,http://www.up114.com . 搜索引擎优化自然是首选,可是也不能放过邮件群发,虽然邮件群发被人所不齿, 不过,只要选定了群发的对象,少发点,应该没什么吧,:=--. 所以就找了一些相关主题的论坛,好多都是动网的论坛,现在就是需要把论坛用户的Email地址 收集下来,网上也

动网论坛上传文件漏洞的原理以及攻击的代码实现

攻击|上传 最近一段时间比较忙,没什么时间为组织做贡献(实在是没实力,呵呵).刚好前一段时间听小*(*蛋儿的<目前流行的BBS安全性比较>一文请参阅:http://wvw.ttian.net/forum/viewtopic.php?id=269)说动网论坛出了一个上传任意文件的漏洞,当时没怎么明白.但是我看到最近NB论坛上全部都在讨论有关这方面的问题,就研究了一下,发现这个漏洞确实存在,而且非常严重,用小*的话说是DVBBS7.0 SP2以下通杀.虽然有些人已经知道了攻击方法,但是还是存在一些

动网论坛整合出现/bbs/dv

朋友使用动网8.2整合CMS+OBLOG4.6后,以本地调试一切都正常,结果,上传到服务器空间就无法正常使用了,通过动网论坛登陆时,出现错误,错误提示是: msxml3.dll   错误 '80072ee7'The server name or address could not be resolved }/bbs/dv_dpo/cls_dvapi.asp,行111 通过OBLOG登陆也是提示请求数据出错. 经过分析一下,发布到www.alixixi.com阿里西西网站提供大家参考,解决方法其实

对动网论坛作搜索引擎优化

搜索引擎|优化|搜索引擎|优化 今天对 车米网 的论坛作了优化,发现动网论坛7.0本来就考虑到了搜索引擎的问题,只需要简单修改就可以很好的优化了. 动网论坛采用javascript+模版的方式显示页面,服务器将没有深加工的数据和js代码一起发送到客户端解析,减轻了服务器负担,但是搜索引擎一般不会解析javascript代码的,不过动网论坛的主要页面都有判断浏览器类型,如果是搜索引擎,自动跳转到专门为浏览器显示的页面,但是这些页面做得不是太好,下面是我修改的结果: 昨天我把论坛的meta标签的de

解析动网论坛默认账号密码带来的危害

动网论坛 自从类似动网key.asp文件带来的安全隐患被公开以后,一般比较负责的网站管理员会删掉这些类似的危险文件,但是还有一些我们以前不是太重视的问题,就是默认的账号密码的问题,同前面的危险文件一样,它们也会给网站带来致命的伤害. 不知道为什么,各大程序代码提供者的设的账号密码一般为admin.admin或者admin. admin888,所以往往遇到许多网站,我们只要知道这个网站用的是哪个系统的代码,我们就可以找其默认的管理员账号密码与默认的后台管理页面就可以轻松进入后台.动网的论坛就是一个

动网论坛验证码改进:加法验证码(ASPJpeg版)

很多站长都为论坛里太多的垃圾广告抓狂,本程序就是为了对付论坛垃圾广告群发器的. 将验证码改为加法运算,比如验证码显示"25+64等于?",那么输入"91"就能通过验证. 来看看效果图对比:字符验证码: → 加法验证码: 优点: ①与纯字符验证码相比,本程序效防止了绝大部分(99%以上)广告机的自动识别.即使是中文验证码, 也能被市面上的部分广告机识别. ②与中文验证码相比,避免了用户输入用户名密码验证码的时候需要切换输入法的麻烦. 有兴趣的朋友,还可以扩展为其他的运