發現廣告阻擋器!
本站的開銷是靠廣告收入來彌補的。請將本站加入允許名單內。謝謝!
SQL 子查詢 | |
我們可以在一個 SQL 語句中放入另一個 SQL 語句。當我們在 WHERE 子句或 HAVING 子句中插入另一個 SQL 語句時,我們就有一個子查詢 (Subquery) 的架構。 子查詢的作用是什麼呢?第一,它可以被用來連接表格。另外,有的時候子查詢是唯一能夠連接兩個表格的方式。 子查詢的語法如下:
SELECT "欄位1"
FROM "表格" WHERE "欄位2" [比較運算素] (SELECT "欄位1" FROM "表格" WHERE "條件"); [比較運算素] 可以是相等的運算素,例如 =, >, <, >=, <=. 這也可以是一個對文字的運算素,例如 "LIKE"。綠色的部分代表外查詢,紅色的部分代表內查詢。 我們就用剛剛在闡述 SQL 連接時用過的例子: Store_Information 表格
Geography 表格
我們可以用以下的 Subquery 語句來找出所有在西部的店的營業額。 SELECT SUM(Sales) FROM Store_Information
WHERE Store_Name IN (SELECT Store_Name FROM Geography WHERE Region_Name = 'West'); 結果:
在這個例子中,我們並沒有直接將兩個表格連接起來,然後由此直接算出每一間西區店面的營業額。我們做的是先找出哪些店是在西區的,然後再算出這些店的營業額總共是多少。 在以上的例子,內部查詢本身與外部查詢沒有關係。這一類的子查詢稱為『簡單子查詢』 (Simple Subquery)。如果內部查詢是要利用到外部查詢提到的表格中的欄位,那這個字查詢就被稱為『相關子查詢』 (Correlated Subquery)。以下是一個相關子查詢的例子: SELECT SUM(a1.Sales) FROM Store_Information a1
WHERE a1.Store_Name IN (SELECT Store_Name FROM Geography a2 WHERE a2.Store_Name = a1.Store_Name); 紅色部分即是外部查詢提到的表格中的欄位。
|
本站的開銷是靠廣告收入來彌補的。請將本站加入允許名單內。謝謝!