ความแตกต่างระหว่างการเข้าร่วมซ้ายและขวา (พร้อมตาราง)

สารบัญ:

Anonim

Join เป็นชื่อเล่นทั่วไปและองค์ประกอบคำสั่งที่จะปรากฏขึ้นเป็นครั้งคราวในขณะที่จัดการกับ SQL คำสั่ง join อำนวยความสะดวกในการรวมเร็กคอร์ดจากตารางต่างๆ ในการรวบรวมข้อมูล การรวมสร้างตารางที่อาจใช้โดยลำพังหรือรวมกัน ดังนั้นจึงแนะนำให้เข้าใจการรวมเหล่านี้และความแตกต่างระหว่างพวกเขาเพื่อกำหนดการรวมเฉพาะและควรเลือกขวาหรือซ้ายในกรณีพิเศษ

เข้าร่วมซ้าย vs เข้าร่วมขวา

ความแตกต่างระหว่างการรวมด้านซ้ายและการเข้าร่วมด้านขวาคือการรวมรายการที่ไม่ตรงกันเป็นความแตกต่างหลักระหว่างการรวมทั้งสองประเภทนี้ LEFT JOIN ประมวลผลรายการทั้งหมดจากด้านซ้ายและแถวที่จับคู่จากตารางด้านขวา ขณะที่ RIGHT JOIN จะส่งแถวทั้งหมดจากด้านขวาและแถวที่ไม่ตรงกันจากแผงด้านซ้าย

แม้ว่าจะไม่มีการจับคู่ทางด้านขวาของตาราง แต่กระบวนการ SQL LEFT ที่รับรายการทั้งหมดจากตารางด้านซ้าย นี่หมายความว่าเมื่อส่วนคำสั่ง ON มีรายการ 0 (ศูนย์) ที่ด้านขวาของตาราง การรวมจะยังคงส่งกลับระเบียนที่มีค่า NULL ในทุกฟิลด์จากตารางหลัก นี่หมายความว่าการรวมด้านซ้ายส่งข้อมูลทั้งหมดก่อนจากตารางด้านซ้าย เช่นเดียวกับค่าที่ตรงกันจากตารางด้านขวา หรือ NULL ถ้าไม่มีเพรดิเคตการรวมที่เหมาะสม

ในทางกลับกัน การรวมด้านขวาพบว่าแม้ในตารางด้านซ้าย SQL RIGHT จะรับและส่งรายการทั้งหมดจากตารางด้านขวา นี่หมายความว่าแม้ว่าคำสั่ง ON จะมีรายการ 0 (ศูนย์) ในฐานข้อมูลด้านซ้าย การรวมจะยังคงสร้างแถวที่มีค่า NULL ในแต่ละฟิลด์จากตารางด้านซ้าย เช่นเดียวกับการรวมด้านซ้าย แต่ในทางกลับกัน

นี่หมายความว่าการรวมทางขวาส่งข้อมูลทั้งหมดจากตารางที่ถูกต้อง เช่นเดียวกับค่าที่ยอมรับจากตาราง หรือเป็นค่า NULL ถ้าไม่มีเพรดิเคตการรวมที่เหมาะสมสำหรับการดำเนินการนี้

ตารางเปรียบเทียบระหว่างการรวมซ้ายและขวา

พารามิเตอร์ของการเปรียบเทียบ

เข้าร่วมซ้าย

เข้าร่วมขวา

การใช้งาน

มันเชื่อมต่อหลายตารางและให้ระเบียนทั้งหมดจากตารางด้านซ้ายตลอดจนแถวที่ตรงกันจากด้านขวา มันรวมหลายตารางและส่งข้อมูลทั้งหมดจากตารางที่ถูกต้องรวมถึงแถวที่ตรงกันก่อนจากตารางด้านซ้าย
การดำเนินการสอบถาม

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

ค่าที่ตั้งไว้ของผลลัพธ์จะเป็น NULL หรือศูนย์ หากไม่พบข้อมูลที่ตรงกันในตารางด้านขวา ค่าชุดผลลัพธ์จะเป็น NULL หรือศูนย์ หากไม่พบข้อมูลที่ตรงกันในตารางด้านซ้าย
คำพ้องความหมาย

ซ้าย OUTER เข้าร่วม เข้าร่วมด้านนอกขวา
ไวยากรณ์

เลือก column_name(s)FROM table1LEFT JOIN table2ON table1.column_name = table2.column_name; เลือก column_name จาก table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;

Left Join คืออะไร?

ในการผสานข้อมูลจากสองฐานข้อมูลโดยขึ้นอยู่กับคอลัมน์ที่มีค่าที่ตรงกัน เราใช้ JOIN ใน SQL ตัวอย่างเช่น หากคุณมีตารางที่มีข้อมูลลูกค้า (ID ลูกค้า นามสกุล ตัวระบุ ฯลฯ) และตารางอื่นที่มีข้อมูลคำสั่งซื้อในช่วงเวลาหนึ่ง (รหัสธุรกรรม เวลา รหัสลูกค้า รหัสผลิตภัณฑ์ ฯลฯ) คุณสามารถเชื่อมโยงชุดข้อมูลทั้งสองโดยใช้คอลัมน์ที่มีหมายเลขรหัสลูกค้า ข้อมูลนี้จะให้ข้อมูลคำสั่งซื้อและข้อมูลลูกค้าสำหรับลูกค้าแต่ละราย และส่วนคำสั่งเข้าร่วมด้านซ้ายมีบทบาทสำคัญในการดำเนินการนี้

มาดูไวยากรณ์ของ Left Join เพื่อทำความเข้าใจยูทิลิตี้อย่างถูกต้อง:

SELECT column_name(s)

จากตาราง1

ซ้ายเข้าร่วม table2

เปิด table1.column_name = table2.column_name

ในการเริ่มต้น ฐานข้อมูลจะตรวจสอบแต่ละรายการในตารางด้านซ้าย จากนั้นจึงค้นหารายการที่ตรงกันในตารางด้านขวาโดยขึ้นอยู่กับคอลัมน์ที่เชื่อมโยง หากพบรายการที่ตรงกัน ข้อมูลจากตารางด้านขวาจะถูกเพิ่มไปยังแถวที่ตรงกันของตารางด้านซ้าย หากพบหลายรายการที่ตรงกัน คอลัมน์ในตารางด้านซ้ายจะซ้ำกันเพื่อรวมข้อมูลทั้งหมดโดยตรงจากตารางด้านขวา หากไม่พบรายการที่ตรงกัน จะรักษาแถวไว้เหมือนจากตารางด้านซ้าย จากนั้นแทรก NULL ลงในคอลัมน์ที่เกี่ยวข้องของตารางด้านขวา

ขวาเข้าร่วมคืออะไร?

กล่าวอย่างตรงไปตรงมา การดำเนินการเข้าร่วมทางขวาคล้ายกับการเข้าร่วมทางซ้ายมาก ตรงกันข้าม เพื่อความเข้าใจที่ดีขึ้น เราจะทำการวิเคราะห์ไวยากรณ์และการใช้งานทั่วไปของ right join รวมถึงลิงก์ไปยังตารางด้านซ้ายเป็นสิ่งสำคัญในกรณีนี้

การรวมทางขวาของ SQL ให้ข้อมูลทั้งหมดจากแถวของตารางด้านขวา นอกจากนี้ยังมีค่าที่ได้รับการยืนยันจากตารางด้านซ้าย อย่างไรก็ตาม หากไม่พบข้อมูลที่ตรงกันในฐานข้อมูลทั้งสอง ฐานข้อมูลจะส่งค่า NULL การรวมทางขวาโดยพื้นฐานแล้วคล้ายกับการรวมทางซ้ายที่พวกเขาดึงแถวทั้งหมดออกจากตารางที่ระบุในวลี RIGHT JOIN แต่เฉพาะแถวที่สอดคล้องกันจากตารางที่ระบุในส่วนคำสั่ง FROM

RIGHT JOIN ถูกใช้ไม่บ่อยนัก เนื่องจากเนื้อหาของ RIGHT JOIN สามารถรับได้โดยเพียงแค่สลับป้ายกำกับของตารางที่เชื่อมต่อกันทั้งสองตารางใน LEFT JOIN

ประเพณีเกี่ยวกับการใช้ LEFT JOIN เสมอมักเกิดขึ้นเพื่อให้การสืบค้นเข้าใจและตรวจสอบได้ง่ายขึ้น แม้ว่าจะไม่มีเหตุผลที่น่าสนใจที่จะหลีกเลี่ยงการใช้ RIGHT JOIN เป็นมูลค่าการกล่าวขวัญว่า LEFT JOIN และ RIGHT JOIN อาจแสดงเป็น LEFT OUTER JOIN เช่นเดียวกับ RIGHT OUTER JOIN

ไวยากรณ์สำหรับ Right Join มีคำอธิบายเพิ่มเติมด้านล่าง การดำเนินการของการรวมด้านขวาและด้านซ้ายเหมือนกัน แต่ในลำดับที่กลับกัน:

เลือกชื่อคอลัมน์จาก table1RIGHT เข้าร่วม table2ON table1.column_name = table2.column_name

ความแตกต่างหลักระหว่างการเข้าร่วมด้านซ้ายและการเข้าร่วมด้านขวา

บทสรุป

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

อ้างอิง

ความแตกต่างระหว่างการเข้าร่วมซ้ายและขวา (พร้อมตาราง)