• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    動網論壇代碼分析

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 12次 | 進入軟件測試論壇討論

    領測軟件測試網 在動網論壇中,用戶登錄以后,論壇菜單下方會多出兩條鏈接,即:“我發布的主題”和“我參與的主題”。前者的查詢簡單一些,只需要查詢登錄用戶發布的主題就行,可以寫成“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)

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>