SQL LEFT JOIN เป็นประเภทของการรวม SQL การรวมนี้ส่งคืนตารางทั้งหมดจากคอลัมน์ "ซ้าย" ที่ระบุและแถวที่เกี่ยวข้องที่ตรงกับเงื่อนไขเฉพาะในคอลัมน์ "ขวา"
ในหลายกรณี เมื่อคุณเขียนข้อความค้นหาใน SQL คุณจะต้องมุ่งเน้นไปที่ตารางเดียวเท่านั้น อย่างไรก็ตาม มีหลายสถานการณ์ที่คุณจะต้องสอบถามตารางตั้งแต่สองตารางขึ้นไปพร้อมกัน ในสถานการณ์นี้ คุณจะต้องสร้างผลลัพธ์ที่รวมข้อมูลจากทั้งสองตาราง
ใน SQL ซึ่งเรียกว่าการรวม การรวมช่วยให้คุณได้รับข้อมูลจากหลายตารางและรวมผลลัพธ์ไว้ในตารางที่เข้าร่วม ตัวอย่างเช่น คุณสามารถรวมตารางพนักงานและแผนกเข้าด้วยกันเพื่อรับชื่อแผนกสำหรับพนักงานแต่ละคน
ในบทช่วยสอนนี้ เราจะแบ่งประเภทการเข้าร่วมใน SQL . ประเภทหนึ่ง :LEFT JOIN . เราจะหารือกันที่ LEFT JOINs มีประโยชน์ และคุณจะนำไปใช้ใน SQL . ได้อย่างไร แบบสอบถาม
SQL ซ้ายเข้าร่วม
SQL LEFT JOIN ส่งกลับระเบียนทั้งหมดจากตาราง "ซ้าย" ที่ระบุในแบบสอบถามของคุณ โดยจะจับคู่ค่าจากตารางนี้ตามเงื่อนไขของคุณกับตารางที่ "ถูกต้อง" รายการที่ตรงกันจะถูกส่งคืนนอกเหนือจากระเบียนทั้งหมดจากตาราง "ซ้าย" _LEFT JOIN_s เป็นประเภทของการรวมภายนอกของ SQL
ตัวอย่างเช่น คุณสามารถใช้ left join เพื่อรับรายชื่อแผนกสำหรับพนักงานแต่ละคน วิธีนี้จะช่วยให้คุณเห็นพนักงานทุกคนแม้ว่าจะไม่ได้มอบหมายแผนกก็ตาม
ไวยากรณ์พื้นฐานสำหรับ LEFT JOIN ดำเนินการดังนี้:
SELECT Table1.Column1, Table2.Column1 FROM Table1 LEFT JOIN Table2 ON Table1.Column2 = Table1.Column2;
เราเริ่มต้นการรวมของเราด้วยคำสั่ง SQL SELECT ตารางในคำสั่ง FROM คือตาราง "ซ้าย" ของเรา จากนั้น เราใช้ LEFT JOIN คำสำคัญ. ซึ่งจะทำให้เราสามารถระบุตารางที่ "ถูกต้อง"
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
เราใช้คำสั่ง ON เพื่อกำหนดเงื่อนไขที่ตารางของเราเชื่อมต่อกัน ซ้ายเข้าร่วม เป็นประเภทของการรวมภายนอก ดังนั้น คุณอาจเห็นการรวมประเภทนี้เรียกว่า การรวมภายนอกด้านซ้าย .
ลองใช้ตัวอย่างเพื่อแสดง LEFT JOINs ทำงาน
LEFT JOIN ตัวอย่าง SQL
สมมติว่าเราต้องการรับรายชื่อแผนกที่พนักงานแต่ละคนทำงาน เราต้องการดึงข้อมูลนี้โดยใช้แบบสอบถามเดียว นี่คือข้อความค้นหาที่ช่วยให้เราได้รับข้อมูลนี้:
SELECT employees.name, employees.title, company_departments.name AS DeptName FROM employees LEFT JOIN company_departments ON employees.department_id = company_departments.department_id;
แบบสอบถามของเราส่งคืนเจ็ดระเบียน:
ชื่อ | หัวเรื่อง | ชื่อแผนก |
ลุค | พนักงานขาย | ยอดขาย |
ไมค์ | พนักงานขาย | ยอดขาย |
ฮันนาห์ | พนักงานขาย | ยอดขาย |
เจฟฟ์ | พนักงานขายอาวุโส | ยอดขาย |
อเล็กซิส | พนักงานขาย | ยอดขาย |
เอ็มม่า | ผู้อำนวยการฝ่ายการตลาด | การตลาด |
โจนาห์ | รองประธานฝ่ายขาย | ผู้บริหาร |
(7 แถว)
ในบรรทัดแรกของแบบสอบถาม เราระบุว่าเราต้องการรับสามคอลัมน์ เราเรียกค้นชื่อพนักงาน ตำแหน่ง และชื่อแผนกที่พวกเขาทำงาน AS DeptName บอกข้อสงสัยของเราว่าคอลัมน์ชื่อแผนกควรเรียกว่า DeptName .
ในบรรทัดถัดไป เราระบุว่าเราต้องการรับข้อมูลจาก พนักงาน . ของเรา โต๊ะ. จากนั้น เราสร้าง LEFT JOIN ระหว่างโต๊ะนั้นกับ company_departments . ในบรรทัดสุดท้าย เราเชื่อมโยงตารางทั้งสองเข้าด้วยกันโดยใช้ค่าทั่วไป:department_id
ซ้ายเข้าร่วม ส่งคืนเฉพาะแถวทั้งหมดจากตารางด้านซ้าย และแถวจากตารางด้านขวาที่ตรงตามเงื่อนไขการรวม
หากเรามีพนักงานที่มี ID แผนก 9 และแผนกนั้นไม่มีอยู่ พวกเขาจะยังคงปรากฏในแบบสอบถามของเรา หากเรามีแผนกของบริษัทที่ไม่มีอยู่ แผนกนั้นจะไม่ปรากฏใน JOIN . ของเรา สอบถามค่ะ
มาเรียกใช้แบบสอบถามอีกครั้ง แต่คราวนี้มีพนักงานใหม่ในฐานข้อมูลของเรา นี่คือค่านิยมสำหรับพนักงานใหม่ของเรา:
ชื่อ | หัวเรื่อง | แผนก_id |
อดัม | พนักงานขายอาวุโส | 9 |
(1 แถว)
รหัสแผนก 9 ไม่มีอยู่ในตารางของเรา company_departments . แต่เมื่อเราเรียกใช้แบบสอบถามการเข้าร่วมด้านซ้ายเช่นเดียวกับด้านบน บันทึกของ Adam ก็ยังถูกรวมอยู่ด้วย เนื่องจากเรากำลังใช้ LEFT JOIN . นี่คือผลลัพธ์ของ INNER JOIN . แบบเดียวกัน แบบสอบถามที่เราดำเนินการข้างต้น แต่ด้วยบันทึกของอดัม:
ชื่อ | หัวเรื่อง | ชื่อแผนก |
ลุค | พนักงานขาย | ยอดขาย |
ไมค์ | พนักงานขาย | ยอดขาย |
ฮันนาห์ | พนักงานขาย | ยอดขาย |
เจฟฟ์ | พนักงานขายอาวุโส | ยอดขาย |
อเล็กซิส | พนักงานขาย | ยอดขาย |
เอ็มม่า | ผู้อำนวยการฝ่ายการตลาด | การตลาด |
โจนาห์ | รองประธานฝ่ายขาย | ผู้บริหาร |
อดัม | พนักงานขายอาวุโส | |
บทสรุป
SQL LEFT JOIN ค้นหามากกว่าหนึ่งตารางและส่งคืนแถวทั้งหมดจากตาราง "ซ้าย" ที่ระบุ พวกเขายังส่งคืนแถวจากตารางด้านขวาโดยที่ JOIN ตรงตามเงื่อนไข
ตัวอย่างเช่น สมมติว่าคุณต้องการส่งคืนรายชื่อลูกค้ารวมถึงชื่อของแผนสมาชิกที่พวกเขาสมัคร หากชื่อแผนสมาชิกอยู่ในตารางอื่น คุณสามารถใช้การรวมด้านซ้ายเพื่อเรียกข้อมูลได้
เราได้เขียนคู่มือ How to Learn SQL เพื่อช่วยให้ผู้เรียนพัฒนาความรู้เกี่ยวกับ SQL คู่มือประกอบด้วยรายการแหล่งข้อมูลการเรียนรู้ชั้นนำและคำแนะนำจากผู้เชี่ยวชาญที่จะช่วยคุณในแบบของคุณ ดูคำแนะนำในหน้า How to Learn SQL ของเรา