MySQL必知必會 學習筆記 第十四章 使用子查詢
MySQL 4.1引入了子查詢。
任何SQL語句都是查詢,但此術語一般指SELECT語句。
有兩張表,一張是語言表,一張是電影表:
選出語言是英語的電影:
SELECT title
FROM film
WHERE language_id IN (SELECT language_id
FROM language
WHERE name = 'English');
能巢狀的子查詢沒有數量限制,但由於效能限制,不能巢狀太多子查詢。
上例中的IN也可換成等於號。
子查詢並不總是執行這種型別的資料檢索的最有效的方法,效能會差。
子查詢的執行總是從內到外。
子查詢也可作為計算欄位,下例計算出每種語言的電影數:
SELECT language_id,
name,
(SELECT COUNT(*)
FROM film
WHERE film.language_id = language.language_id) AS num
FROM language;
執行它:
上例顯示film表中僅有英文電影。上例中的子查詢被執行了六次,因為有六種語言。
如果子查詢中不使用完全限定的表名:
此時MySQL假定是對film表中language_id的自身比較,子查詢總是返回全部值。
在除錯巢狀的子查詢SQL語句時,可先執行子查詢,看是否符合預期,符合後再拼接子查詢,可節約找出為什麼查詢不正常的時間。
相關文章
- MySQL必知必會筆記——查詢的基礎知識MySql筆記
- mysql必知必會筆記MySql筆記
- 《Mysql必知必會》讀書筆記MySql筆記
- MYSQL學習筆記26: 多表查詢|子查詢MySql筆記
- Mysql必知必會練習MySql
- 【必知必會的MySQL知識】②使用MySQLMySql
- SQL必知必會筆記(上)SQL筆記
- SQL必知必會筆記(下)SQL筆記
- MySQL 必知必會MySql
- 《正規表示式必知必會》學習筆記以及示例文件筆記
- MYSQL學習筆記25: 多表查詢(子查詢)[標量子查詢,列子查詢]MySql筆記
- Mysql系列第十二講 子查詢(非常重要,高手必備)MySql
- 【必知必會的MySQL知識】①初探MySQLMySql
- 01-mysql必知必會MySql
- MYSQL中的鎖必知必會MySql
- 學習SpringMVC必知必會(2)~走近Spring MVCSpringMVC
- (MySQL學習筆記)分頁查詢MySql筆記
- 【必知必會的MySQL知識】④DCL語言MySql
- 【必知必會的MySQL知識】⑤DQL語言MySql
- 【必知必會的MySQL知識】③DML語言MySql
- 《MySQL必知必會》萬用字元 ( like , % , _ ,)MySql字元
- MySQL必知必會》正規表示式MySql
- MySQL必知必會(1-12章)MySql
- MySQL必知必會詳細總結MySql
- Redis 必知必會之慢查詢、Pipeline、釋出訂閱、Bitmap、HyperLogLog、GEORedis
- Flutter學習必知必會!怎樣才能不踩坑地使用Flutter ?Flutter
- 學習MyBatis必知必會(2)~MyBatis基本介紹和MyBatis基本使用MyBatis
- 【必知必會的MySQL知識】mysql5.7安裝教程MySql
- Flutter 外掛使用必知必會Flutter
- 《MySQL 必知必會》C25-C28MySql
- 學習Spring5必知必會(1)~未使用spring前的麻煩Spring
- 學習Spring5必知必會(4)~使用註解配置、使用java程式碼配置SpringJava
- mysql,where條件查詢等學習筆記MySql筆記
- Linux必會必知Linux
- git必會必知Git
- Redis 必知必會Redis
- ThreadLocal必知必會thread
- Activity 必知必會