ความแตกต่างหลัก: มีการรวมใน SQL เพื่อรวมข้อมูลของสองตารางที่แตกต่างกัน การเข้าร่วมภายในคือเงื่อนไขที่ส่งผลให้แถวซึ่งตรงตามส่วนคำสั่ง 'ที่ไหน' ใน“ ตารางทั้งหมด”; ในขณะที่ Outer Join เป็นเงื่อนไขที่ทำให้เกิดผลลัพธ์ในแถวเหล่านั้นซึ่งตรงกับส่วนคำสั่ง 'Where' ใน“ อย่างน้อยหนึ่งในตาราง”
ในการใช้การรวมตารางชั่วคราวจะถูกสร้างขึ้นซึ่งจะขึ้นอยู่กับคอลัมน์ ควรมีสองตารางเสมอสำหรับเงื่อนไขการเข้าร่วม เงื่อนไขเหล่านี้จากนั้นรวมองค์ประกอบที่เกี่ยวข้องของตารางหนึ่งเข้ากับส่วนประกอบอื่น ๆ และก่อให้เกิดตารางใหม่ทั้งหมด เป้าหมายของตารางเหล่านี้คือการแยกข้อมูลหรือข้อมูลที่มีความหมายและจำเป็น ขึ้นอยู่กับเงื่อนไขการรวมมีสองประเภทคือการรวมภายในและภายนอก

SQL INNER JOIN ไวยากรณ์:
SELECT column_name
จาก table1
เข้าร่วมภายใน table2
ON table1.column_name = table2.column_name;
คำหลัก INNER JOIN เลือกแถวทั้งหมดจากทั้งสองตารางตราบใดที่มีการจับคู่ระหว่างคอลัมน์ในทั้งสองตาราง
การรวมภายในนั้นขึ้นอยู่กับการเลือกการออกแบบฐานข้อมูลและคุณสมบัติ ดังนั้นการรวมภายในเหล่านี้ใช้ใน Equi-Joins และ Natural Joins ในการเข้าร่วม Equi มีการเปรียบเทียบประเภทเฉพาะซึ่งใช้ในการทำให้เท่าเทียมกันทั้งสองตารางที่กำหนด ดังนั้นตารางนี้ใช้เพรดิเคตเท่ากัน การเข้าร่วมที่เป็นธรรมชาติคือประเภทของการเข้าร่วม Equi

ไวยากรณ์สำหรับการเข้าร่วม Equi มีดังนี้:
S ELECT *
จาก table1, table 2
WHERE table1.coloumn_name = table2.coloumn_name;
หากคอลัมน์ในการเข้าร่วม equi มีชื่อเหมือนกันดังนั้นเวอร์ชัน SQL นั้นจะแสดงเครื่องหมายชวเลขและตัวเลือกที่สามารถแสดงโดยการสร้างโดยใช้:
เลือก *
จาก table1 INNER JOIN table2 โดยใช้ (column_name);
ไวยากรณ์สำหรับการเข้าร่วมแบบธรรมชาติมีดังนี้:
เลือก *
จาก table1 Natural JOIN table2;
“ การรวมภายนอก” ไม่ต้องการเงื่อนไขการจับคู่สำหรับระเบียน เงื่อนไขการเข้าร่วมนี้เก็บรักษาระเบียนอื่นทั้งหมดนอกเหนือจากระเบียนที่ไม่ตรงกัน การเข้าร่วมนี้มีการแจกจ่ายเพิ่มเติมในเงื่อนไขการเข้าร่วมด้านซ้ายขวาและเต็มซึ่งจะดำเนินการตามเงื่อนไขและคุณลักษณะของตารางที่ต้องการ

เข้าร่วม Outer Left
คีย์เวิร์ด LEFT JOIN ส่งคืนแถวทั้งหมดจากตารางด้านซ้าย (ตารางที่ 1) พร้อมแถวที่ตรงกันในตารางด้านขวา (ตารางที่ 2) ผลลัพธ์เป็น“ NULL” ที่ด้านขวาเมื่อไม่มีการจับคู่
ไวยากรณ์สำหรับ Left Outer Join ดังต่อไปนี้:
SELECT column_name
จาก table1
ด้านซ้ายด้านนอกเข้าร่วม table2
ON table1.column_name = table2.column_name;

เข้าร่วม Outer ขวา
คำหลัก RIGHT JOIN ส่งคืนแถวทั้งหมดจากตารางด้านขวา (ตารางที่ 2) โดยมีแถวที่ตรงกันในตารางด้านซ้าย (ตารางที่ 1) ผลลัพธ์คือ NULL ทางด้านซ้ายเมื่อไม่มีการจับคู่
ไวยากรณ์สำหรับ Right Outer Join ดังต่อไปนี้:
SELECT column_name
จาก table1
เข้าร่วมออกด้านขวา Table2
ON table1.column_name = table2.column_name;

เต็มนอกเข้าร่วม
คีย์เวิร์ด FULL OUTER JOIN ส่งคืนแถวทั้งหมดจากตารางด้านซ้าย (table1) และตารางด้านขวา (table2) คีย์เวิร์ด FOU OUTER JOIN รวมทั้งผลลัพธ์ของการรวมซ้ายและขวา
ไวยากรณ์สำหรับ Full Outer Join คือ:
SELECT column_name
จาก table1
เต็มนอกเข้าร่วม table2
ON table1.column_name = table2.column_name;
เปรียบเทียบระหว่าง Inner Join และ Outer เข้าร่วม:
เข้าร่วม Inner | เข้าร่วม Outer | |
ฟังก์ชั่นพื้นฐาน | การรวมภายในใช้เพื่อค้นหาแถวที่ตรงกันระหว่าง 2 ตาราง | ด้านนอกเข้าร่วมรักษาแถวของตารางอย่างใดอย่างหนึ่งหรือทั้งสองตาราง |
การดำรงอยู่ของตัวแปรทั่วไป | ที่นี่ตัวแปรทั่วไปจะต้องอยู่ในทั้งสองตาราง | ตัวแปรนี้ขึ้นอยู่กับเฉพาะตารางแรกซึ่งอาจจะมีหรือไม่มีอยู่ในตารางที่สอง |
ผลตอบแทน | การเข้าร่วมภายในจะส่งคืนแถวที่มีการจับคู่ตามภาคแสดงการเข้าร่วมเท่านั้น | การรวมภายนอกจะส่งคืนแถวทั้งหมดไม่ว่าจะเป็นการจับคู่แบบอิงหรือไม่จับคู่โดยขึ้นอยู่กับภาคแสดงการเข้าร่วม |
เคย | มันถูกใช้เพื่อดูบันทึกเฉพาะเมื่อมีการบันทึกอยู่บนทั้งสองตาราง | มันถูกใช้เพื่อดูบันทึกทั้งหมดในเพียงหนึ่งตาราง |
สามารถใช้ได้ใน | พวกเขามีผลบังคับใช้ใน: เข้าร่วม Equi และ เข้าร่วมธรรมชาติ | พวกเขาจะใช้เป็น: เข้าร่วม Outer Left เข้าร่วม Outer ขวา เต็มนอกเข้าร่วม |