select exists 的應用一例

2022-09-12 00:12:32 字數 623 閱讀 9303

當遇到多層exists的時候,事情就變得開始複雜了。我們來看看這個例子吧

假設有三張表

請選出選了所有課程的學生

select 姓名

from 學生表

where not exists

( //學生缺的學科

select *

from 課程表

where not exists

(//學生選的學科

select *

from 選課表

where 學生表.學號 = 選課表.學號 and 課程表.課程號 = 選課表.課程號

));

下面解讀一下這兩個exists。

第一層not exists的意思是 對乙個學生而言選出他沒選過的課程。如果他沒選過的課程為空,那麼他就選擇了所有課程。

第二層not exits的意思是 對乙個學生一門指定的課程篩選出選課表中對應的記錄。

從邏輯上說,「選了所有課程的學生」等價於

對乙個學生,不存在這樣的課程,這個課程不沒有被這個學生選。

應用 原生應用和混合應用的區別

最近原生應用 web應用 混合應用的名字讓我們聽得比較熟悉了,現在我們就通過評析各種應用的優缺點來更進一步看看這三者的區別。一.原生應用 你使用過微軟powerpoint 或者 word吧?這些可直接在你電腦上執行或者在智慧型手機上執行,簡單來說,原生應用是特別為某種作業系統開發的,比如ios an...

ASP應用中的應用函式

經常寫些系統,那麼一般都是從登入程式開始,每接乙個系統就寫一次登入,好麻煩。乾脆直接做個登入驗證函式吧,對我來說,大都情況可以勝任了 function chk regist requestname,requestpwd,tablename,namefield,pwdfield,reurl dim n...

SAP BTP MTA 應用的應用場景

程式語言 軟體設計架構 如微服務 協議 如 odata 的最新趨勢和進展,以及多層和分布式部署平台的多樣性,加速了由更多 更小 解耦和多樣化的模組構建應用程式的趨勢。在微服務架構下,越來越多的業務應用程式傾向於由使用不同語言和技術開發並部署到各種目標執行時環境的多個部分組成。這種應用程式模組的多樣性...