การรวมภายใน

เสร็จสมบูรณ์เมื่อ

รวมตาราง

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

การรวมคือการดําเนินการ SQL ที่จําเป็นซึ่งเชื่อมโยงช่องว่างนี้ ซึ่งช่วยให้คุณสามารถรวมแถวจากตารางตั้งแต่สองตารางขึ้นไป และดึงข้อมูลที่เกี่ยวข้องในชุดผลลัพธ์แบบรวมศูนย์ชุดเดียว โดยแท้จริงแล้ว การรวมช่วยให้คุณสามารถคิวรีข้อมูลที่เชื่อมต่อตามตรรกะแต่แยกออกจริงได้ ซึ่งบรรลุการรวมกันนี้โดยการระบุและการจับคู่แถวตามค่าที่พบในคอลัมน์ทั่วไปหนึ่งคอลัมน์หรือมากกว่าระหว่างตาราง คอลัมน์ทั่วไปเหล่านี้มักจะทําหน้าที่เป็นการเชื่อมโยงระหว่างคีย์หลักในตารางหนึ่งและ Foreign Key ในอีกตารางหนึ่ง การสร้างความสัมพันธ์ที่กําหนดใน Schema ฐานข้อมูล

หมายเหตุ: คีย์หลักคือตัวระบุที่ไม่ซ้ํากันสําหรับแต่ละระเบียนในตาราง ตรวจสอบให้แน่ใจว่าไม่มีสองแถวที่มีค่าเดียวกันในคอลัมน์นี้ ในทางกลับกัน Foreign Key คือคอลัมน์ในตารางหนึ่งที่อ้างอิงคีย์หลักในตารางอื่น ดังนั้นจึงเชื่อมโยงสองตาราง

มีการรวม 'รสชาติ' หลายรายการ (INNER, , LEFT, RIGHT, FULL OUTERNATURAL) ซึ่งออกแบบมาเพื่อรวมตารางในรูปแบบที่แตกต่างกันเล็กน้อย ซึ่งมีการควบคุมว่าแถวใดจะรวมอยู่ในชุดผลลัพธ์โดยยึดตามการปรากฏหรือไม่มีค่าที่ตรงกันในตารางรวม

การรวมภายใน

INNER JOINเป็นชนิดการรวม SQL ที่ใช้บ่อยที่สุดชนิดหนึ่ง ซึ่งจะรวมแถวจากหลายตารางโดยยึดตามเงื่อนไขที่ระบุค่าที่ตรงกันในคอลัมน์ที่ใช้ร่วมกัน

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

SELECT orders.order_id, customers.customer_name, employees.first_name, employees.last_name
FROM sales.orders AS orders
INNER JOIN sales.customers AS customers ON orders.customer_id = customers.customer_id
INNER JOIN sales.employees AS employees ON orders.employee_id = employees.employee_id;

คิวรีที่ให้มาใช้การดําเนินการหลายอย่างINNER JOINเพื่อดึงข้อมูลชุดผลลัพธ์แบบรวมที่ประกอบด้วยรายละเอียดเกี่ยวกับ orderscustomers, และemployees

ซึ่งจะจับคู่ customer_id ในตาราง orders กับ ที่สอดคล้องกันcustomer_idในตาราง customers และ employee_id ในตาราง orders ที่มี employee_id ในตารางemployees ด้วยเหตุนี้ คิวรีจะส่งออก ID ของแต่ละคําสั่งซื้อควบคู่ไปกับชื่อของลูกค้าและพนักงานที่เกี่ยวข้อง