詳解mysql子查詢
阿新 • • 發佈:2018-12-12
本文詳解mysql中的子查詢:
子查詢分為
where
子查詢和from
子查詢。
where
子查詢包括標量子查詢、列子查詢、行子查詢、exists
子查詢
from
子查詢包括表子查詢
1.標量子查詢
概念:子查詢得到結果是一個數據 (一行一列)
語法:select * from 資料來源 where 條件判斷 =/<> (select 欄位名 from 資料來源 where 條件判斷);
2.列子查詢
概念: 子查詢得到的結果是一列資料(一列多行)
語法: 主查詢 where 條件 in (列子查詢);
3.行子查詢
概念: 子查詢返回的結果是一行多列
行元素:欄位元素是指一個欄位對應的值,行元素對應的就是多個欄位,多個欄位合起來作為一個元素參與運算,這種情況成為行元素。
語法: 主查詢 where 條件 [(構造一個行元素)] = (行子查詢);
4.表子查詢
概念: 子查詢返回的結果是多行多列(也可能是一行一列),與行子查詢相似,只是行子查詢需要產生行元素而表子查詢沒有。
區分: 行子查詢用於where
條件判斷,屬於where
子查詢
表子查詢用於from
資料來源,屬於from
子查詢
語法: select 欄位表 from (表子查詢) as 別名 [where] [group by] [having] [order by] [limit];
5.exists子查詢
概念: 子查詢返回的結果只有0或者1(成立或者不成立)
語法: select * from 資料來源 where exists(查詢語句);
//根據查詢得到的結果進行判斷返回0,1