JOIN ตารางที่เชื่อมกันด้วย foreign key
มา join สองตารางนี้เพื่อวิเคราะห์ข้อมูลให้ลึกขึ้นกัน!
คุณอาจรู้จัก SQL join อยู่แล้วจากคอร์ส Intro to SQL for Data Science (แบบฝึกหัดสุดท้าย) หรือจาก Joining Data in PostgreSQL
นี่คือสรุปโครงสร้างของ join โดยทั่วไป:
SELECT ...
FROM table_a
JOIN table_b
ON ...
WHERE ...
แม้ว่า foreign key และ primary key จะไม่ใช่สิ่งที่จำเป็นอย่างเคร่งครัดสำหรับคิวรีแบบ join แต่ก็ช่วยได้มาก เพราะบอกให้รู้ว่าควรคาดหวังอะไร ตัวอย่างเช่น คุณมั่นใจได้เลยว่า record ที่อ้างอิงจากตาราง A จะมีอยู่ในตาราง B เสมอ ดังนั้น join จากตาราง A จะพบข้อมูลในตาราง B เสมอ หากไม่เป็นเช่นนั้น constraint ของ foreign key ก็จะถูกละเมิด
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
SQL เบื้องต้น: ฐานข้อมูลเชิงสัมพันธ์
คำแนะนำการฝึกหัด
JOINprofessorsกับuniversitiesโดยใช้เงื่อนไขprofessors.university_id = universities.idนั่นคือ เก็บเฉพาะ record ที่ foreign key ของprofessorsตรงกับ primary key ของuniversities- กรองข้อมูลโดยระบุ
university_city = 'Zurich'
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Select all professors working for universities in the city of Zurich
SELECT professors.lastname, universities.id, universities.university_city
___ professors
___ ___
ON ___.university_id = universities.___
___ universities.university_city = ___;