SQL數據查詢之嵌套查詢中的帶IN子查詢


在SQL語言中,一個select-from-where語句稱為一個查詢塊。將一個查詢塊嵌套在另一個查詢塊的where子句或having短語的條件中的查詢稱為嵌套查詢

 

  例如:

    select  Sname            /*外層查詢或父查詢*/

    from  Student

    where  Sno  in

          (select  Sno

            from  SC        /*內層查詢或子查詢*/

            where  Cno=‘2’);

 

說明:   1.子查詢的select語句中不能使用order  by子句,order  by子句只能對最終查詢結果排序。

     2.嵌套查詢使用戶可以用多個簡單查詢構成復雜的查詢,從而增強SQL的查詢能力。以層層嵌套的方式來構造程序正是SQL中的‘結構化’的涵義所在。

 

1.帶有IN的子查詢

   例如:查詢與劉晨在同一個系的學生

    ① 確定劉晨所在的系名

      select  Sdept   from   Student   where  Sname=‘劉晨’;

    結果為CS

       ②    查找所在CS系學習的學生

      select   Sno,Sname,Sdept   /*建議每個列名都加上表名*/

      from   Student

      where  Sdept=‘CS’

將第一步查詢嵌入到第二步查詢條件中,構成嵌套查詢如下:

    select  Student.Sno,Student.Sname,Student.Sdept

    from   Student

    where   Sdept   in

       (select   Sdept

          from   Student

          where    Sname=‘劉晨’);

 子查詢的查詢條件不依賴父查詢,稱為不相關子查詢

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM