Sql EXISTS 用於子查詢

2021-07-25 06:00:02 字數 553 閱讀 6799

exists用於檢查子查詢是否至少會返回一行資料,該子查詢實際上並不返回任何資料,而是返回值true或false。

exists 指定乙個子查詢,檢測行的存在。

語法:exists subquery。引數 subquery 是乙個受限的 select 語句 (不允許有 compute 子句和 into 關鍵字)。

結果型別為 boolean,如果子查詢包含行,則返回 true。

在子查詢中使用 null 仍然返回結果集

舉例:select * from partner_menu o

where exists(select 1

from partner_menu_role mr where mr.menuid = o.menuid and exists(select 1

from partner_user_role ur where ur.roleid = mr.roleid and ur.userid = "123"))

and o.status='1' and length(o.menuid)=3 order by o.sortno asc;

SQL exists 查詢原理

通過使用exists,oracle會首先檢查主查詢,然後執行子查詢直到它找到第乙個匹配項,這就節省了時間。oracle在執行in子查詢時,首先執行子查詢,並將獲得的結果列表存放在乙個加了索引的臨時表中。在執行子查詢之前,系統先將主查詢掛起,待子查詢執行完畢,存放在臨時表中以後再執行主查詢。這也就是使...

mysql from 子查詢 mysql 子查詢

簡單的解釋下幾個資料庫概念以幫助理解子查詢的內容 1 什麼是建標 答 就是宣告列的過程。2 什麼是列答 列可以理解為變數,可以運算3 什麼是取出結果 答 可以理解為零時表 接下來建立2個表,email表和person表,例子的原型是乙個人可以有多個郵箱,而乙個郵箱只能屬於乙個人,一對多的資料關係,其...

mysql求和 子查詢 MySQL子查詢

到現在為止,我們已經表明,以select宣告是乙個簡單的查詢。該單個語句從單個資料庫表中檢索資料。sql還同意建立乙個子查詢。即巢狀在其他查詢的查詢。下列實施例給出巢狀查詢。一種表示訂單資訊儲存,包含訂單號,客戶id。訂購日期。例如以下所看到的 一張表示儲存訂單物品資訊,例如以下 另一張表儲存的是客...