รวมสามตารางใน SQL

Rwm Samta Rang Ni Sql



คุณสมบัติที่สำคัญอย่างหนึ่งของฐานข้อมูลเชิงสัมพันธ์คือความสามารถในการแยกข้อมูลที่เกี่ยวข้องออกเป็นส่วนประกอบต่างๆ ที่เรียกว่า 'ตาราง' แตกต่างจากฐานข้อมูลอื่น ๆ ฐานข้อมูลเชิงสัมพันธ์ต้องมีการรวบรวมข้อมูลจากตารางต่าง ๆ และรวบรวมผลลัพธ์เป็นข้อมูลที่มีความหมาย

นี่คือที่มาของฟังก์ชันการรวม ในฐานข้อมูลเชิงสัมพันธ์ การรวมเป็นหนึ่งในการดำเนินการทั่วไปที่อนุญาตให้คุณรวมข้อมูลจากสองตารางขึ้นไปเป็นชุดผลลัพธ์เดียว







อย่างไรก็ตาม คุณอาจพบว่าการรวมส่วนใหญ่ครอบคลุมเพียงสองตารางเท่านั้น อย่างไรก็ตาม การรวมสามารถขยายได้อย่างรวดเร็วถึงสามตารางขึ้นไป แม้ว่าการดู CTE อาจมีประสิทธิภาพมากกว่าเมื่อทำงานกับตารางมากกว่าสามตาราง แต่การรวมจะมีประสิทธิภาพและรวดเร็วมากเมื่อพูดถึงสามตาราง



ในบทช่วยสอนนี้ เราจะพูดถึงขั้นตอนต่างๆ ที่คุณต้องดำเนินการรวมที่เกี่ยวข้องกับสามตารางใน SQL



เริ่มต้นใช้งาน

ก่อนที่เราจะเริ่มต้น เราถือว่าคุณมีตารางอย่างง่ายสามตารางที่มีคอลัมน์ดังที่แสดงต่อไปนี้:





ตารางที่ 1:
รหัส | ชื่อ | อายุ

ตารางที่ 2:
รหัส | เมือง | ประเทศ

ตารางที่ 3:
รหัส | เงินเดือน | ตำแหน่ง


เลย์เอาต์นี้ช่วยให้เราเข้าใจได้อย่างรวดเร็วว่าการรวมตารางสามตารางทำงานอย่างไร และเราจะกำหนดค่าตารางเหล่านั้นโดยใช้คิวรี SQL ได้อย่างไร

รวมสามตารางใน SQL

เมื่อทำการรวมใน SQL คอมโพเนนต์หลักจะเริ่มต้นด้วยการระบุคอลัมน์ทั่วไปหรือชุดของคอลัมน์ในแต่ละตารางที่คุณต้องการรวม จากนั้นคุณสามารถใช้คอลัมน์ที่ใช้ร่วมกันเหล่านี้เพื่อเชื่อมโยงตารางเข้าด้วยกัน ทำให้ SQL สามารถตีความและผสานข้อมูลได้อย่างสมเหตุสมผลและมีประสิทธิภาพ



แม้ว่าจะมีการรวมหลายประเภทใน SQL แต่องค์ประกอบหลักคือความคล้ายคลึงกันในตาราง

สำหรับบทช่วยสอนนี้ เราจะมุ่งเน้นไปที่การรวมภายในที่ส่งคืนเฉพาะแถวที่ตรงกับค่าในสามตาราง

ในกรณีของตารางก่อนหน้านี้ เราสามารถทำการรวมภายในกับสามตารางตามที่แสดงในแบบสอบถามต่อไปนี้:

เลือก Table1.name, Table2.city, Table3.salary
จากตารางที่ 1
INNER JOIN ตารางที่ 2
บน Table1.id = Table2.id
INNER JOIN ตารางที่ 3
บน Table2.id = Table3.id;


ให้เราสำรวจแบบสอบถามก่อนหน้านี้ทีละขั้นตอน:

    1. อย่างแรกคือคำสั่ง SELECT ซึ่งช่วยให้เราสามารถเลือกคอลัมน์ที่เราต้องการรวมไว้ในชุดผลลัพธ์ ในกรณีนี้ เราสนใจคอลัมน์ชื่อจากตารางที่ 1 คอลัมน์เมืองจากตารางที่ 2 และคอลัมน์เงินเดือนจากตารางที่ 3
    2. เมื่อใช้คำสั่ง FROM เราระบุตารางเป้าหมายที่เราต้องการดึงคอลัมน์ที่ตั้งไว้ ในกรณีนี้ เรากำลังดึงข้อมูลจากตารางที่ 1
    3. ถัดมาคำสั่ง INNER JOIN เราใช้ส่วนคำสั่งนี้เพื่อรวมตารางที่ 1 กับตารางที่ 2 นอกจากนี้ เรายังใช้ส่วนคำสั่ง ON เพื่อระบุเงื่อนไขที่เชื่อมโยงตารางสองตารางซึ่งในกรณีนี้คือคอลัมน์ ID
    4. INNER JOIN ที่สองช่วยให้เราสามารถเข้าร่วมชุดผลลัพธ์จากการรวมครั้งแรกกับตารางที่ 3 โดยใช้ส่วนคำสั่ง ON เราบอก SQL ว่าเราต้องการเข้าร่วมชุดผลลัพธ์และตารางที่ 3 ตามคอลัมน์ ID
    5. ชุดผลลัพธ์จากทั้งสามตารางรวมอยู่ในคอลัมน์ที่เลือก

ตัวอย่างการปฏิบัติ:

แม้ว่าตัวอย่างก่อนหน้านี้จะสาธิตวิธีการเข้าร่วมตารางทั้งสามตาราง แต่ให้เรายกตัวอย่างที่ใช้งานได้จริงมากขึ้นและใช้ฐานข้อมูล Sakila

เราเข้าร่วมตารางภาพยนตร์ การเช่า และสินค้าคงคลังในกรณีนี้ แบบสอบถามเป็นดังนี้:

เลือก Rental.rental_id, Rental.rental_date, Film.title, Inventory.inventory_id
จากการเช่า
เข้าร่วมสินค้าคงคลังบน rental.inventory_id = สินค้าคงคลัง.inventory_id
เข้าร่วมภาพยนตร์ใน inventory.film_id = film.film_id
ที่ไหน film.title = 'นักแข่งพระอาทิตย์ตก' ;


คำอธิบาย:

    1. ในกรณีนี้ เราใช้คำสั่ง SELECT เพื่อเลือกคอลัมน์ Rental_id, Rental_date และ Inventory_id จากตารางการเช่า
    2. ส่วนคำสั่ง JOIN แรกเชื่อมโยงตารางการเช่ากับตารางสินค้าคงคลังโดยใช้คอลัมน์ Inventory_id
    3. ส่วนคำสั่ง JOIN ที่สองรวมชุดผลลัพธ์จากการรวมครั้งแรกเข้ากับตารางภาพยนตร์โดยใช้คอลัมน์ film_id
    4. สุดท้าย เราใช้ส่วนคำสั่ง WHERE เพื่อกรองชุดผลลัพธ์เพื่อรวมชื่อเป้าหมายเท่านั้น

ตารางผลลัพธ์มีดังนี้:

บทสรุป

การรวมสามตารางใน SQL จำเป็นต้องระบุคอลัมน์หรือชุดของคอลัมน์ที่ใช้ร่วมกันในแต่ละตาราง และใช้ประเภทการรวมที่เหมาะสม (ภายใน ด้านซ้าย ด้านขวา หรือด้านนอกแบบเต็ม) เพื่อเชื่อมโยงตารางเข้าด้วยกัน ดังที่แสดงในบทช่วยสอนนี้ คุณควรเข้าใจวิธีการรวมสามตารางใน SQL