15、子查询注意事项
在完成較復(fù)雜的數(shù)據(jù)查詢時(shí),經(jīng)常會(huì)使用到子查詢,編寫子查詢語(yǔ)句時(shí),要注意如下事項(xiàng)。
1) 子查詢語(yǔ)句可以嵌套在 SQL 語(yǔ)句中任何表達(dá)式出現(xiàn)的位置
在 SELECT 語(yǔ)句中,子查詢可以被嵌套在 SELECT 語(yǔ)句的列、表和查詢條件中,即 SELECT 子句,FROM 子句、WHERE 子句、GROUP BY 子句和 HAVING 子句。
前面已經(jīng)介紹了 WHERE 子句中嵌套子查詢的使用方法,下面是子查詢?cè)?SELECT 子句和 FROM 子句中的使用語(yǔ)法。
嵌套在 SELECT 語(yǔ)句的 SELECT 子句中的子查詢語(yǔ)法格式如下。
SELECT (子查詢) FROM 表名;提示:子查詢結(jié)果為單行單列,但不必指定列別名。
嵌套在 SELECT 語(yǔ)句的 FROM 子句中的子查詢語(yǔ)法格式如下。
SELECT * FROM (子查詢) AS 表的別名;注意:必須為表指定別名。一般返回多行多列數(shù)據(jù)記錄,可以當(dāng)作一張臨時(shí)表。
2) 只出現(xiàn)在子查詢中而沒(méi)有出現(xiàn)在父查詢中的表不能包含在輸出列中
多層嵌套子查詢的最終數(shù)據(jù)集只包含父查詢(即最外層的查詢)的 SELECT 子句中出現(xiàn)的字段,而子查詢的輸出結(jié)果通常會(huì)作為其外層子查詢數(shù)據(jù)源或用于數(shù)據(jù)判斷匹配。
常見錯(cuò)誤如下:
SELECT * FROM (SELECT * FROM result);這個(gè)子查詢語(yǔ)句產(chǎn)生語(yǔ)法錯(cuò)誤的原因在于主查詢語(yǔ)句的 FROM 子句是一個(gè)子查詢語(yǔ)句,因此應(yīng)該為子查詢結(jié)果集指定別名。正確代碼如下。
SELECT * FROM (SELECT * FROM result) AS Temp; 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的15、子查询注意事项的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 12、INNER JOIN:内连接
- 下一篇: 16、子查询改写为表连接