在 FROM 中延伸子查詢的用法
在上一題中,你發現資料庫裡只有 England、Netherlands、Germany 和 Spain 這些國家的比賽曾經出現總進球數達到 10 球或以上。現在來更進一步了解這些比賽的細節——比賽日期、賽季,以及主隊與客隊各自的進球數。
你會注意到,在這題中,主要查詢所選取的每個欄位都沒有加上資料表別名。這是因為「主要查詢」是從「子查詢」取資料,而子查詢會被視為「單一資料表」。
本練習屬於課程
SQL 資料操作
練習說明
- 完成
FROM子句中的「子查詢」。從country資料表選取國家name,並從match資料表選取date、home_goal、away_goal與total_goals欄位。 - 在「子查詢」中建立一個名為
total_goals的欄位,計算主客隊進球數的總和。這將用來篩選主要查詢。 - 在「主要」查詢中選取
country、date、home_goal和away_goal。 - 將主要查詢「篩選」為總進球數「大於等於 10」的比賽。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
SELECT
-- Select country, date, home, and away goals from the subquery
___,
date,
___,
away_goal
FROM
-- Select country name, date, home_goal, away_goal, and total goals in the subquery
(SELECT ___ AS country,
m.date,
___,
m.away_goal,
(___ + m.away_goal) AS total_goals
FROM match AS m
LEFT JOIN country AS c
ON m.country_id = c.id) AS subq
-- Filter by total goals scored in the main query
WHERE total_goals ___ ___;