複製鏈接
請複製以下鏈接發送給好友

關聯子查詢

鎖定
關聯子查詢,計算機技術方法術語,在關聯子查詢中,對於外部查詢返回的每一行數據,內部查詢都要執行一次。另外,在關聯子查詢中是信息流是雙向的。外部查詢的每行數據傳遞一個值給子查詢,然後子查詢為每一行數據執行一次並返回它的記錄。然後,外部查詢根據返回的記錄做出決策。
中文名
關聯子查詢
外文名
Correlated subquery
定 義
關聯子查詢中是信息流是雙向的
應用學科
計算機技術方法術語

目錄

關聯子查詢概念

關聯子查詢與嵌套子查詢不同的是,信息傳播是雙向而不是單向的。在嵌套子查詢中,僅處理內部查詢一次,並向外部查詢傳遞信息——本質上提供相同值或者列出錄入的清單。
但是,內部查詢利用關聯子查詢涉及外部查詢提供的信息,反之亦然。這種説法似乎有點令人混淆,但它可以分為三步進行處理:
1、外部查詢得到一條記錄並傳遞到內部查詢中;
2、內部查詢基於輸入值執行;
3、內部查詢把返回值輸出到外部查詢中,並用這些值結束內部查詢。 [1] 

關聯子查詢工作方法

WHERE子句中的關聯子查詢
在這個特定的查詢中,外部查詢只在WHERE子句中引用內部查詢——它也可以在SELECT清單中包括從內部查詢中獲得的數據。
通常根據自己的意願決定是否希望使用別名,但對關聯子查詢,則必須使用別名。這種查詢在很大程度上顯示了為什麼內部查詢和外部查詢都建立在同一張表上。兩個查詢都從彼此之間獲得信息,因此,如果沒有別名,它們就不會知道用户對哪張表的數據感興趣。
SELECT清單中的關聯子查詢
子查詢也可以用於為選擇結果提供不同結果。通常,如果要查找的基本信息與被查找的其他數據不同步,則會發生這種情況(例如,在一個字段上執行聚集操作,但不希望它成為影響其他返回結果的字段)。
處理NULL值數據
實際上有一些函數專門處理NULL值數據,其中特別有用的函數之一是ISNULL()函數。ISNULL()接受變量或者表達式併為此測試NULL值。如果該值確實為空,那麼函數返回一些預先説明的值,如果原始值不為NULL,那麼就返回原始值。 [2] 
參考資料
  • 1.    史進譯.SQL Server 2000基礎教程:人民郵電出版社,2001.09
  • 2.    袁永林等編著.SQL Server 2005中文版數據庫管理與開發從入門到精通:清華大學出版社,2007.06