การรวมแบบธรรมชาติและแบบเต็มรูปแบบ
การรวมภายนอกทั้งหมด
FULL OUTER JOINหรือที่เรียกว่า FULL JOINรวมลักษณะทั้งLEFT JOINของ และ RIGHT JOINรวมถึงแถวทั้งหมดจากทั้งสองตารางในชุดผลลัพธ์
ถ้ามีแถวที่ตรงกันระหว่างตารางที่ ON ยึดตามส่วนคําสั่ง คอลัมน์จากทั้งสองตารางจะถูกเติม อย่างไรก็ตาม ถ้าแถวในตารางหนึ่งไม่มีรายการที่ตรงกันในตารางอื่น คอลัมน์จากตารางที่ไม่ตรงกันจะแสดงค่า Null
SELECT customers.customer_name, orders.order_id
FROM sales.customers AS customers
FULL OUTER JOIN sales.orders AS orders ON customers.customer_id = orders.customer_id;
คิวรีนี้จะรวมแถวทั้งหมดจากทั้ง sales.customers ตาราง และ sales.orders เพื่อให้แน่ใจว่าไม่มีข้อมูลถูกแยกออกจากด้านใดด้านหนึ่ง ส่วน ON คําสั่งจะสร้างความสัมพันธ์ระหว่างสองตารางโดยการจับคู่ customer_id คอลัมน์
ถ้าแถวในตารางหนึ่งไม่มีรายการที่ตรงกันในตารางอื่น คอลัมน์ที่ไม่ตรงกันจะส่งกลับค่า Null
คุณจะใช้วิธีนี้สําหรับมุมมองที่ครอบคลุมของลูกค้าและคําสั่งซื้อทั้งหมด รวมถึงสถานการณ์ที่ไม่มีเรกคอร์ดที่เกี่ยวข้องในอีกรายการ
การรวมธรรมชาติ
NATURAL JOIN เป็นการรวม SQL ประเภทที่ลดความซับซ้อนของกระบวนการการรวมตารางโดยการจับคู่คอลัมน์ที่มีชื่อเดียวกันและชนิดข้อมูลที่เข้ากันได้จากทั้งสองตารางโดยอัตโนมัติ
ซึ่งแตกต่างจากการรวมแบบชัดเจน ที่มีการกําหนดความสัมพันธ์ระหว่างตารางโดยใช้ ON ส่วนคําสั่ง NATURAL JOIN โดยอาศัยชื่อคอลัมน์เพื่อระบุแอตทริบิวต์ที่ใช้ร่วมกัน ตรวจสอบให้แน่ใจว่ามีการรวมเฉพาะแถวที่มีค่าเหมือนกันในคอลัมน์ที่ตรงกันในชุดผลลัพธ์ซึ่งกรองข้อมูลที่ไม่ตรงกันอย่างมีประสิทธิภาพ
วิธีการนี้มีประโยชน์เมื่อตารางที่เข้าร่วมมีการกําหนดความสัมพันธ์และชื่อคอลัมน์ที่ตรงกันอย่างชัดเจน เนื่องจากจะช่วยลดความจําเป็นสําหรับข้อกําหนดของเงื่อนไขการรวมด้วยตนเอง
อย่างไรก็ตาม ผู้ใช้ต้องระมัดระวังเนื่องจากการใช้ชื่อคอลัมน์อย่างแท้จริงอาจนําไปสู่ผลลัพธ์ที่ไม่ตั้งใจถ้าตารางมีคอลัมน์ที่มีชื่อเหมือนกันแต่ข้อมูลที่ไม่เกี่ยวข้อง
SELECT c.customer_name, o.order_id
FROM sales.customers AS c
NATURAL JOIN sales.orders AS o;
คิวรีนี้จะรวมsales.customersตาราง และ sales.orders โดยการจับคู่คอลัมน์ที่มีชื่อเดียวกันและชนิดข้อมูลที่เข้ากันได้โดยอัตโนมัติ เช่นcustomer_id