บทช่วยสอนนี้จะแสดงให้คุณเห็นถึงวิธีการใช้ MySQL self-join เพื่อรวมตารางเข้ากับตัวมันเองและสร้างข้อมูลที่กำหนดเอง
การใช้งานพื้นฐาน
MySQL self-join ใช้นามแฝงของตารางเพื่อให้แน่ใจว่าคุณจะไม่ทำซ้ำตารางเดียวกันมากกว่าหนึ่งครั้งในคำสั่งเดียว
บันทึก: หากคุณไม่คุ้นเคยกับนามแฝงของตาราง ให้พิจารณาบทช่วยสอนอื่นๆ ของเราที่อธิบายแนวคิดทั้งหมด
ไวยากรณ์ทั่วไปสำหรับการใช้ self-join จะคล้ายกับรูปแบบหนึ่งเมื่อรวมสองตารางเข้าด้วยกัน อย่างไรก็ตาม เราใช้นามแฝงของตาราง พิจารณาแบบสอบถามที่แสดงด้านล่าง:
เลือก alias1.cols,alias2.cols จาก tbl1 นามแฝง1,tbl2 นามแฝง2 ที่ไหน [สภาพ]
ตัวอย่างการใช้งานกรณี
ลองใช้ตัวอย่างเพื่อทำความเข้าใจวิธีการเข้าร่วม MySQL ด้วยตนเอง สมมติว่าคุณมีฐานข้อมูลที่มีข้อมูลต่อไปนี้ (ดูแบบสอบถามแบบเต็มด้านล่าง)
หยด สคีมา ถ้า มีอยู่ ตัวเอง;สร้าง สคีมา ตัวเอง;
ใช้ ตัวเอง;
สร้าง ตาราง ผู้ใช้(
NS INT คีย์หลัก AUTO_INCREMENT ,
ชื่อจริง VARCHAR (255),
อีเมล VARCHAR (255),
payment_id INT ,
สมัครสมาชิก INT
);
แทรก เข้าไปข้างใน ผู้ใช้(ชื่อจริง,อีเมล,payment_id,สมัครสมาชิก) ค่านิยม ('วาเลอรี จี. ฟิลลิป', ' [ป้องกันอีเมล] ', 10001, 1), ('ฌอน อาร์ สตอรี่ส์', ' [ป้องกันอีเมล] ', 10005, 2), ('บ็อบบี้ เอส. นิวซัม', ' [ป้องกันอีเมล] ', 100010, 5);
เราจะเริ่มต้นด้วยการเข้าร่วม INNER และสุดท้ายคือการเข้าร่วมทางซ้าย
เข้าร่วมด้วยตนเองโดยใช้ Inner Join
แบบสอบถามด้านล่างดำเนินการเข้าร่วม INNER บนตารางที่สร้างขึ้นด้านบน
เลือก อัล1.* จาก ผู้ใช้ al1 ด้านใน เข้าร่วม ผู้ใช้ al2 บน al1.สมัครสมาชิก=al2.สมัครสมาชิก สั่งโดย NS รายละเอียด ;ผลลัพธ์ที่แสดงด้านล่าง:
เข้าร่วมด้วยตนเองโดยใช้ Left Join
ตัวอย่างแบบสอบถามด้านล่างอธิบายวิธีที่เราสามารถใช้ self join กับ left join
เลือก ( CONCAT (al1.first_name, '->',al2.email)) เช่น รายละเอียด,al1.payment_id จาก ผู้ใช้ al1 ซ้าย เข้าร่วม ผู้ใช้ al2 บน al1.id=al2.id;ผลลัพธ์ที่ได้คือด้านล่าง:
บทสรุป
คู่มือนี้จะอธิบายวิธีการใช้ MySQL self join เพื่อเข้าร่วมตารางด้วยตัวเอง
ขอบคุณสำหรับการอ่าน.