mysql子查詢的五種形式
mysql從4.1版開始支援子查詢功能,在此版本前,可以用join寫連表查詢來進行替代,但不推薦這麼寫,相當的麻煩。以下是mysql子查詢的幾種常見寫法:
mysql從4.1版開始支援子查詢功能,在此版本前,可以用join寫連表查詢來進行替代,但不推薦這麼寫,相當的麻煩。mysql子查詢的幾種常見寫法:
2. select * from *** where col in (select * from ***x);
該 句法相當的明了,就是查詢語句的where子句是以子查詢語句的結果作為其範圍的,與上一種語法的any相似。
3. select row(value1,value2.....) = [any](selectcol1,col2..);
該語句的執行實質是:子查詢語句的執行所得的結果與查詢的結果集匹配,若能找到匹配的返回真,否則返回假,並且兩邊的結果集都是一組離散值。
4. select .... where col = [not] exists (select......);
該語句比較蹩腳,其執行是這樣的:當子查詢進行操作,有返回結果的時候,該語句才會執行,而且有多少個結果,語句就執行幾次。
5. select .... from (select .....) as name where ......
該句法,在平時用的比較少,而且並不好理解。其實是這麼一回事,通過子查詢執行的結果來構造一張新的表(這個表是一張衍生資料表,是一張虛擬的表),其用來作為主句的查詢的物件,該句法功能非常強大,在一些複雜的查詢中會經常用到。
子查詢雖然挺方便,但其有不少缺點,其不支援limit,而且經實驗證明其執行效率相當不理想,在一般的情況下,還是不推薦是用子查詢。
mysql四種子查詢
標量子查詢 子查詢只有乙個字段一條記錄 select from article where uid select uid from user where status 1 order by uid desc limit1 例如 select from article where uid 1列子查詢 ...
MySQL 5子查詢與連線小結
子查詢 出現在其他sql語句中的 select,必須出現在小括號內,子查詢外層可以是常見的select語句,insert語句 update語句 delete語句,在子查詢中可以包含多個關鍵字和條件 如 order by limit 以及相關的函式等。引發子查詢的情況3種 比較運算子 in 或 not...
小貝 mysql三種子查詢
where子查詢 from子查詢 exists子查詢 2.1 乙個好的模型,便於我們去理解。當我們編寫一條sql語句時,可以通過以下幾點去理解 a where表示式,把表示式放在行中,看表示式是否為真 b 列 理解成變數,可以運算 c 取出結果,可以理解成一張臨時表 2.2 理解三種子查詢1 whe...