1. 程式人生 > >詳解mysql子查詢

詳解mysql子查詢

本文詳解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