chapter14:使用子查詢

子查詢

即嵌套在其他查詢中的查詢。

利用子查詢進(jìn)行過濾

例:

  1. 檢索包含物品TNT2的所有訂單的編號。
  2. 檢索具有前一步驟列出的訂單編號的所有客戶的ID。
  3. 檢索前一步驟返回的所有客戶ID的客戶信息。

把一條SELECT語句返回的結(jié)果用于另一條SELECT語句的WHERE子句。

第一步:

SELECT order_num
FROM orderitems
WHERE prod_id = 'TNT2';

第二步:查詢具有訂單20005和20007的客戶ID。

SELECT cust_id
FROM orders
WHERE order_num IN (20005,20007);

現(xiàn)在,把第一個查詢變?yōu)樽硬樵兘M合兩個查詢:

SELECT cust_id
FROM orders
WHERE order_num IN (SELECT
                    FROM orderitems
                    WHERE prod_id = 'TNT2');

!:在SELECT語句中,子查詢總是從內(nèi)向外處理。

以上得到了訂購物品TNT2的所有客戶的ID。下一步是檢索這些客戶ID的客戶信息:

SELECT cust_name, cust_contact
FROM customers
WHERE cust_id IN (10001,10004);

將WHERE子句轉(zhuǎn)換為子查詢:

SELECT cust_name, cust_contact
FROM customers
WHERE cust_id IN (SELECT cust_id
                  FROM orders
                  WHERE order_num IN (SELECT order_num
                                      FROM orderitems
                                      WHERE prod_id = 'TNT2'));

作為計算字段使用子查詢

例:假如需要顯示customers表中每個客戶的訂單總數(shù)。訂單與相應(yīng)客戶ID存儲在orders表中。步驟:

  1. 從customers表中檢索客戶列表。
  2. 對于檢索出的每個客戶,統(tǒng)計其在orders表中的訂單數(shù)目。
SELECT cust_name,
       cust_state,
       (SELECT COUNT(*)
        FROM orders
        WHERE orders.cust_id = customers.custid) AS orders
FROM cusomers
ORDER BY cust_name;

相關(guān)子查詢(correlatedsubquery):涉及外部查詢的子查詢。這種類型的子查詢稱為相關(guān)子查詢。任何時候只要列名可能有多義性,就必須使用這種語法(表名和列名由一個句點分隔)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • SQL與MySQL簡介 數(shù)據(jù)庫基礎(chǔ) 從SQL的角度來看,數(shù)據(jù)庫就是一個以某種有組織的方式存儲的數(shù)據(jù)集合。我們可以采...
    heming閱讀 3,531評論 1 8
  • 關(guān)系型數(shù)據(jù)庫和SQL SQL語言的三個部分DML:Data Manipulation Language,數(shù)據(jù)操縱語...
    Awey閱讀 2,043評論 0 13
  • 2017/3/14 RDBMS:關(guān)系型數(shù)據(jù)庫管理系統(tǒng) 關(guān)系模型獨立于語言 SQL有幾種不同類型的語言:數(shù)據(jù)定義語言...
    ancherl閱讀 1,785評論 0 6
  • Mysql 必知必會 查詢 檢索多個列SELECT prod_id, prod_name, prod_pri...
    yoomaz閱讀 692評論 0 1
  • 既然生活的走道兒無章可循,何必揣著復(fù)雜,不如揮揮衣袖如流水落花 既然愛你無法自拔,何必藏掖著牽掛,不如趁著裊裊炊煙...
    張大Q閱讀 259評論 0 1

友情鏈接更多精彩內(nèi)容