MySQL 中的子查詢

2021-08-17 08:40:05 字數 716 閱讀 3975

單值子查詢的的返回值必須只有一行記錄,而且只能有乙個列。

這樣的子查詢又被稱為標量子查詢。

例:select 1 as f1,2,(select min(fyearpublished) from t_book),(select max(fyearpublished) from t_book) as f4;

列值子查詢可以返回乙個多行多列的結果集。這樣的子查詢又被稱為錶子查詢,錶子查詢可以看作乙個臨時的表。

標量子查詢完全可以返回隨當前查詢記錄而變化的值。

如:select fid,fname,

(select max(fyearpublished)

from t_book

where t_book. fcategoryid= t_category.fid

)from t_category

這個 select 語句首先檢索 fid、fname 兩個字段,而第三個字段不是乙個列二是乙個子查詢。這個子查詢位於主查詢的內部,它返回一類圖書的最新出版年份。因為聚合函式僅返回一行記錄,所以這滿足標量子查詢的條件。通過 where 語句,這個子查詢也被連線到外部的 select 查詢語句中,因為這個連線,max(fyearpublished) 將返回每類圖書的最新出版年份。

這裡的子查詢是依賴於外部查詢中的 t_category.fid 欄位的,這個子查詢是無法單獨執行的。

update 語句中可以在更新列表中以及 where 語句使用子查詢。

mysql 子查詢 排序 MySQL的子查詢中排序

起因 create table reading record id int primary key auto increment,自增主鍵 file varchar 255 閱讀檔名 user varchar 255 讀者 expend int,閱讀時長 time datetime,閱讀時間 一開始...

mysql中IN子查詢排序

這幾天做乙個查詢,需要在乙個指定的結果集中進行查詢,例如 select from table name where doc id in 1dba c20a 907b 其中in子句中的doc id列表是通過呼叫乙個外部介面獲得一組doc id常量列表,然後在本地庫中搜尋符合這個列表的資料 記錄。後來發...

MySQL中,not in子查詢

今天寫sql語句的時候,希望通過not in子查詢來限制查詢結果,實際sql語句如下 select id as id,type code as typecode type name as typename parent id as parentsid style as style levels as...