SQL裡exists的用法?

時間 2021-06-08 19:24:00

1樓:Walbx

要簡單,那還是用舉例說明吧:

會員資訊表VIP(ID,name,phone),會員消費記錄表Consume(ID,time,amount)

要查詢單次消費額超過5000的會員資訊:

SELECT

*FROM

VIPWHERE

EXISTS

(SELECT

1FROM

Consume

WHERE

VIP.ID=

Consume.ID

ANDConsume

.amount

>5000

)這應該是乙個簡單而典型的例子了,為了直觀,表名都寫的原名。

也就是說,exists的乙個典型應用是用來聯合另一張表為主查詢提供判定條件

上例中,我們以Consume表中消費額大於5000的會員ID作為主查詢select * 的輸出條件。

exists()內的子查詢只是返回乙個true或false的結果,該語句的執行過程大體是先執行主查詢一次,然後每個ID子查詢中按條件對比消費記錄,當得到第乙個true則不再對比該ID剩下的消費記錄,直接確定該ID應輸出(若對比結果全為false,則不輸出),然後繼續下一ID的子查詢。(可以看到並沒有用到子查詢select 1的輸出結果,這就是為什麼子查詢裡可以用"select 1"的原因,實際上1也可以用其他內容代替)

個人理解,僅供參考。

C 裡 T end 的用法是否正確?

不一定對。std prev cppreference.com上明文說了 Although the expression c.end often compiles,it is not guaranteed to do so c.end is an rvalue expression,and there...

X裡X氣 是什麼用法?

野糊吏 傻裡傻氣 糊里糊塗 稀里嘩啦等詞,應該與看一看 猜一猜 講一講等詞相似。這種語言習慣,可能來自上古漢語的 中綴 現象 今天在晉 閩方言裡還有保留 其作用是用來加重語氣 表示強調。看一看 講一講等詞是對動詞的強調。而傻裡傻氣 糊里糊塗等詞則是對形容詞副詞的強調 傻裡傻氣,是對傻的強調 糊里糊塗...

請教下面例句裡的形容詞前的 的用法?

知諸學院 不出意外的話,這位老師想說的應該是 我的學生經常分不清口譯和筆譯 紛 本身有 易混淆的 分不清的 的意思,但是原意裡的 分不清 是個動詞,再加上 的後面不能直接接形容詞,所以這裡 的後面一定要是動詞。雖然 紛 有乙個對應的動詞 紛 但是這個動詞並沒有 分不清 的意思,所以這裡很大概率是老師...