婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > sqlserver exists,not exists的用法

sqlserver exists,not exists的用法

熱門標簽:廣東防封卡外呼系統原理是什么 菏澤語音電銷機器人加盟公司 分享百度地圖標注多個位置 長沙智能外呼系統 外呼系統改進 地圖標注牌 湖南電腦外呼系統平臺 電銷機器人公司 需要哪些牌照 知名電銷機器人價格
學生表:create table student
(
 id number(8) primary key,
 name varchar2(10),deptment number(8)
)
選課表:create table select_course
(
  ID         NUMBER(8) primary key,
  STUDENT_ID NUMBER(8) foreign key (COURSE_ID) references course(ID),
  COURSE_ID  NUMBER(8) foreign key (STUDENT_ID) references student(ID)
)
課程表:create table COURSE
(
  ID     NUMBER(8) not null,
  C_NAME VARCHAR2(20),
  C_NO   VARCHAR2(10)
)
student表的數據:
        ID NAME            DEPTMENT_ID
---------- --------------- -----------
         1 echo                   1000
         2 spring                 2000
         3 smith                  1000
         4 liter                  2000
course表的數據:
        ID C_NAME               C_NO
---------- -------------------- --------
         1 數據庫               data1
         2 數學                 month1
         3 英語                 english1
select_course表的數據:
        ID STUDENT_ID  COURSE_ID
---------- ---------- ----------
         1          1          1
         2          1          2
         3          1          3
         4          2          1
         5          2          2
         6          3          2
1.查詢選修了所有課程的學生id、name:(即這一個學生沒有一門課程他沒有選的。)
分析:如果有一門課沒有選,則此時(1)select * from select_course sc where sc.student_id=ts.id 
and sc.course_id=c.id存在null,
這說明(2)select * from course c 的查詢結果中確實有記錄不存在(1查詢中),查詢結果返回沒有選的課程,
此時select * from t_student ts 后的not exists 判斷結果為false,不執行查詢。
SQL> select * from t_student ts where not exists
 (select * from course c where not exists
   (select * from select_course sc where sc.student_id=ts.id and sc.course_id=c.id));       
        ID NAME            DEPTMENT_ID
---------- --------------- -----------
         1 echo                   1000
2.查詢沒有選擇所有課程的學生,即沒有全選的學生。(存在這樣的一個學生,他至少有一門課沒有選),
分析:只要有一個門沒有選,即select * from select_course sc where student_id=t_student.id and course_id
=course.id 有一條為空,即not exists null 為true,此時select * from course有查詢結果(id為子查詢中的course.id ),
因此select id,name from t_student 將執行查詢(id為子查詢中t_student.id )。
SQL> select id,name from t_student where exists
	(select * from course where not exists
		(select * from select_course sc where student_id=t_student.id and course_id=course.id));
        ID NAME
---------- ---------------
         2 spring
         3 smith
         4 liter
3.查詢一門課也沒有選的學生。(不存這樣的一個學生,他至少選修一門課程),
分析:如果他選修了一門select * from course結果集不為空,not exists 判斷結果為false;
select id,name from t_student 不執行查詢。
SQL> select id,name from t_student where not exists
	(select * from course where exists
		(select * from select_course sc where student_id=t_student.id and course_id=course.id));
        ID NAME
---------- ---------------
         4 liter
4.查詢至少選修了一門課程的學生。
SQL> select id,name from t_student where exists
	(select * from course where  exists
		(select * from select_course sc where student_id=t_student.id and course_id=course.id));
        ID NAME
---------- ---------------
         1 echo
         2 spring
         3 smith

標簽:西寧 珠海 商洛 泉州 福建 天水 美容院 呼和浩特

巨人網絡通訊聲明:本文標題《sqlserver exists,not exists的用法》,本文關鍵詞  sqlserver,exists,not,的,用法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《sqlserver exists,not exists的用法》相關的同類信息!
  • 本頁收集關于sqlserver exists,not exists的用法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 志丹县| 德昌县| 万载县| 大连市| 灌南县| 金阳县| 当阳市| 五大连池市| 成武县| 蓝山县| 曲阜市| 类乌齐县| 宣化县| 铜川市| 星子县| 江陵县| 玛曲县| 玉田县| 武陟县| 定陶县| 汝州市| 鹤山市| 南宁市| 壶关县| 射阳县| 三穗县| 灵璧县| 天气| 黄石市| 大同县| 蓝山县| 儋州市| 昭苏县| 玉林市| 宜宾县| 闽侯县| 四会市| 玉屏| 化德县| 新营市| 渭源县|