開始使用免費開始

在 FROM 中延伸子查詢的用法

在上一題中,你發現資料庫裡只有 England、Netherlands、Germany 和 Spain 這些國家的比賽曾經出現總進球數達到 10 球或以上。現在來更進一步了解這些比賽的細節——比賽日期、賽季,以及主隊與客隊各自的進球數。

你會注意到,在這題中,主要查詢所選取的每個欄位都沒有加上資料表別名。這是因為「主要查詢」是從「子查詢」取資料,而子查詢會被視為「單一資料表」。

本練習屬於課程

SQL 資料操作

檢視課程

練習說明

  • 完成 FROM 子句中的「子查詢」。從 country 資料表選取國家 name,並從 match 資料表選取 datehome_goalaway_goaltotal_goals 欄位。
  • 在「子查詢」中建立一個名為 total_goals 的欄位,計算主客隊進球數的總和。這將用來篩選主要查詢。
  • 在「主要」查詢中選取 countrydatehome_goalaway_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 ___ ___;
編輯並執行程式碼