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

Anonim

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

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

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

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

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

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

การรวมด้านนอกซ้ายจะเก็บแถวทั้งหมดที่อยู่ในตาราง 'ซ้าย' โดยไม่คำนึงว่ามีแถวที่ตรงกับตาราง 'ถูกต้อง' หรือไม่ ตารางด้านซ้ายจึงหมายถึงตารางที่มาก่อนในแถลงการณ์ร่วม ควรปรากฏที่ด้านซ้ายของคำหลัก 'join' ที่เกิดขึ้นบนโต๊ะ เมื่อมีการรวม outer outer ซ้ายแถวทั้งหมดจากด้านซ้ายจะถูกส่งกลับ คอลัมน์ที่ไม่ตรงกันในตารางจะเต็มไปด้วย NULL เมื่อไม่มีการจับคู่

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

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

สรุป

การเข้าร่วมมาในสามกลุ่มหลักคือการเข้าร่วมด้านในการรวมเข้าด้วยกันและการเข้าร่วมด้านนอก

การเข้าร่วม outer left outer จะแสดงแถวทั้งหมดจากด้านซ้ายของตาราง

การเข้าร่วมที่เหมาะสมจะแสดงแถวทั้งหมดจาก ด้านขวาของตาราง

การสลับลำดับ SQL สามารถลดการใช้ทั้งคู่ด้านซ้ายและด้านขวาและใช้แทนได้เท่านั้น