เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การกรองข้อมูลด้วย Subquery แบบรายการ

ในแบบฝึกหัดนี้ เป้าหมายคือสร้างรายชื่อทีมที่ไม่เคยลงเล่นเกมในบ้านของตัวเอง โดยใช้ subquery เพื่อดึงค่า hometeam_ID ที่ไม่ซ้ำกันจากตาราง match ที่ยังไม่ได้กรอง แล้วนำไป ยกเว้น ออกจากคอลัมน์ team_api_ID ในตาราง team

นอกจากการกรองด้วย subquery แบบค่าเดียว (scalar) แล้ว ยังสามารถสร้างรายการค่าจาก subquery เพื่อกรองข้อมูลตามเงื่อนไขที่ซับซ้อนได้อีกด้วย subquery ประเภทนี้จะสร้าง รายการอ้างอิงแบบหนึ่งคอลัมน์ ให้กับคิวรีหลัก ตราบใดที่ค่าในรายการตรงกับคอลัมน์ในตารางของคิวรีหลัก ก็ไม่จำเป็นต้องใช้ JOIN แม้ว่ารายการนั้นจะมาจากตารางอื่นก็ตาม

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การจัดการข้อมูลใน SQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • สร้าง subquery ในส่วน WHERE เพื่อดึงค่า hometeam_id ที่ไม่ซ้ำกันทั้งหมดจากตาราง match
  • เลือก team_long_name และ team_short_name จากตาราง team แล้ว ยกเว้น ค่าทั้งหมดที่ได้จาก subquery ออกจากคิวรีหลัก

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

SELECT 
	-- Select the team long and short names
	___,
	___
FROM ___ 
-- Exclude all values from the subquery
WHERE team_api_id ___ ___
     (___ DISTINCT ___  FROM ___);
แก้ไขและรันโค้ด