Devdit
 

Python ดึงข้อมูล 3 ตารางมาแสดง ด้วยการ join ตาราง

1.6K

Python ดึงข้อมูล 3 ตารางมาแสดง ด้วยการ join ตาราง บทความนี้สอนการเขียนคำสั่ง SQL สำหรับ join ตารางเพื่อดึงข้อมูล 3 ตารางมาแสดงด้วยภาษา Python ร่วมกับฐานข้อมูล MySQL สามารถเขียนโปรแกรมได้ดังนี้

 

ตัวอย่าง โครงสร้างข้อมูลตาราง book, category และ author

ตาราง book
+---------+-------------+-------------+-------------+
| book_id | book_name   | book_cgy_id | book_ath_id |
+---------+-------------+-------------+-------------+
|       1 | PHP & MySQL |           1 |           1 |
|       2 | Python      |           1 |           1 |
|       3 | SQL         |           2 |           2 |
|       4 | Java        |           2 |           2 |
+---------+-------------+-------------+-------------+
ตาราง category
+--------+-------------+
| cgy_id | cgy_name    |
+--------+-------------+
|      1 | Programming |
|      2 | Networking  |
+--------+-------------+
ตาราง author
+--------+----------+
| ath_id | ath_name |
+--------+----------+
|      1 | Mr.A     |
|      2 | Mrs.B    |
|      3 | Mr.C     |
+--------+----------+

 

ตัวอย่าง Python ดึงข้อมูล 3 ตารางมาแสดง ด้วยการ join ตาราง

import mysql.connector
cnx = mysql.connector.connect(user='root', password='', host='127.0.0.1', database='demo')

cur = cnx.cursor()
cur.execute(" SELECT book_id, book_name, cgy_name, ath_name FROM book INNER JOIN category ON ( book_cgy_id = cgy_id ) INNER JOIN author ON ( book_ath_id = ath_id ) ")
records = cur.fetchall()
for row in records:
    print(row[0],"/",row[1],"/",row[2],"/",row[3])
    
cnx.close()

ผลลัพธ์

1 / PHP & MySQL / Programming / Mr.A
2 / Python / Programming / Mr.A
3 / SQL / Networking / Mrs.B
4 / Java / Networking / Mrs.B

คำอธิบาย

Python ดึงข้อมูล 3 ตารางมาแสดง พิจารณาความสัมพันธ์ของทั้ง 3 ตารางก่อน ตาราง book เชื่อมกับ category ด้วย book_cgy_id กับ cgy_id และตาราง book เชื่อมกับ author ด้วย book_ath_id กับ ath_id คำสั่ง SQL สามารถเขียนได้ดังนี้

1. SELECT book_id, book_name, cgy_name, ath_name FROM book คือ กำหนดชื่อ columns ที่ต้องการแสดงจากตาราง book และตารางที่มาเชื่อม (category และ author)

2. INNER JOIN category ON ( book_cgy_id = cgy_id ) คือ join ตาราง book กับ category ผ่านข้อมูลที่เหมือนกันระหว่าง column book_cgy_id และ cgy_id

3. INNER JOIN author ON ( book_ath_id = ath_id ) คือ join ตาราง book กับ author ผ่านข้อมูลที่เหมือนกันระหว่าง column book_ath_id และ ath_id

เขียน 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ