เราสามารถรวมตารางสองตารางใน SQL ตามคอลัมน์ทั่วไประหว่างตารางหรือตามเงื่อนไขที่ระบุ มี JOIN หลายประเภทที่สามารถเข้าร่วมตาราง SQL สองตารางได้
ที่นี่ เราจะหารือเกี่ยวกับการเข้าร่วม LEFT ในสองตาราง สามารถเข้าร่วมตารางได้โดยใช้การเข้าร่วม LEFT ในการเข้าร่วม LEFT ระเบียนทั้งหมดจากตารางแรกหรือตารางด้านซ้ายจะรวมอยู่ในผลลัพธ์เสมอ จากตารางด้านขวา ระเบียนที่ตรงกันจะรวมเข้ากับระเบียนของตารางด้านซ้าย หากไม่พบระเบียนที่ตรงกันสำหรับแถวในตารางด้านซ้าย จะไม่มีการรวมระเบียนใดกับระเบียนนั้น
ตารางถูกรวมเข้าด้วยกันตามเงื่อนไขบางประการ แต่บันทึกทั้งหมดของตารางด้านซ้ายจะรวมอยู่ในผลลัพธ์เสมอโดยไม่คำนึงถึงเงื่อนไข
ไวยากรณ์
เลือกเงื่อนไข column1, column2...FROM table_1LEFT JOIN table_2 ON;
ให้มี 2 ตาราง คือ “นักศึกษา” และ “ภาควิชา” ดังนี้ –
นักศึกษา
<ก่อนหน้า>+----------+--------------+-----------+| id | Student_name | Dept_id |+----------+--------------+-----------+| 1 | ราหุล | 120 || 2 | โรหิต | 121 || 3 | กีรติ | 125 || 4 | อินเดอร์ | 123 |+----------+--------------+-----------+แผนก
<ก่อนหน้า>+----------+-----------------+| Dept_id | Department_name |+----------+----------------+| 120 | CSE || 121 | คณิตศาสตร์ || 122 | ฟิสิกส์ |+----------+-----------------+เราจะทำการ left join ในตารางด้านบนโดยยึดตาม dept_id ซึ่งพบได้ทั่วไปในทั้งสองตาราง
ขั้นตอนในการเข้าร่วมด้านซ้ายบนสองตารางโดยใช้ MySQL ใน python
-
นำเข้าตัวเชื่อมต่อ MySQL
-
สร้างการเชื่อมต่อกับตัวเชื่อมต่อโดยใช้ connect()
-
สร้างวัตถุเคอร์เซอร์โดยใช้เมธอด cursor()
-
สร้างแบบสอบถามโดยใช้คำสั่ง mysql ที่เหมาะสม
-
เรียกใช้คำสั่ง SQL โดยใช้เมธอด execute()
-
ปิดการเชื่อมต่อ
ตัวอย่าง
นำเข้า mysql.connectordb=mysql.connector.connect(host="your host", user="your username", password="yourpassword",database="database_name")cursor=db.cursor()query=" SELECT Students.Id,Students.Student_name,Department.Department_nameFROM Students LEFT เข้าร่วมแผนกกับ Students.Dept_Id=Department.Dept_Id"cursor.execute(query)rows=cursor.fetchall()for x in rows:print(x)db.close ()
ผลลัพธ์
(1, ‘Rahul’, ‘CSE’)(2, ‘Rohit’, ‘Mathematics’)(3, ‘Kirat’, None)(4, ‘Inder’, None)
โปรดทราบว่าระเบียนทั้งหมดจากตารางด้านซ้ายจะรวมอยู่ในผลลัพธ์ แม้ว่าจะไม่มีระเบียนที่ตรงกันสำหรับ 2 แถวสุดท้าย