non-correlated subquery or correlated sub query - [sql語句]

逍遙三人發表於2012-03-15
轉載:http://justdba.blogbus.com/logs/69326805.html

版權宣告:轉載時請以超連結形式標明文章原始出處和作者資訊及本宣告
http://justdba.blogbus.com/logs/69326805.html

子查詢:巢狀在其他查詢中的查詢稱之。

    子查詢又稱內部,而包含子查詢的語句稱之外部查詢(又稱主查詢)。

    所有的子查詢可以分為兩類,即相關子查詢和非相關子查詢

    1>非相關子查詢是獨立於外部查詢的子查詢,子查詢總共執行一次,執行完畢後將值傳遞給外部查詢。

    2>相關子查詢的執行依賴於外部查詢的資料,外部查詢執行一行,子查詢就執行一次。

    故非相關子查詢比相關子查詢效率高

    --非相關子查詢

    SELECT EMPNO, LASTNAME
    FROM EMPLOYEE
    WHERE WORKDEPT = A00
    AND SALARY > (SELECT AVG(SALARY)
    FROM EMPLOYEE
    WHERE WORKDEPT = A00) –子查詢是一個獨立的查詢

    --相關子查詢

    SELECT E1.EMPNO, E1.LASTNAME, E1.WORKDEPT
    FROM EMPLOYEE E1
    WHERE SALARY > (SELECT AVG(SALARY)
    FROM EMPLOYEE E2
    WHERE E2.WORKDEPT = E1.WORKDEPT) –依賴於外部查詢結果
    ORDER BY E1.WORKDEPT

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21584437/viewspace-718594/,如需轉載,請註明出處,否則將追究法律責任。

相關文章