⊗pyPmDOGD 123 of 129 menu

การดึงข้อมูลจากตารางที่เชื่อมโยงกันใน Python

มาลองสร้างคำสั่งที่ดึง ผู้ใช้ทั้งหมดพร้อมกับเมืองของพวกเขา สำหรับสิ่งนี้ จะต้องใช้คำสั่ง LEFT JOIN:

ไวยากรณ์ของมันมีลักษณะดังนี้:

SELECT fields FROM table_name LEFT JOIN linked_table_name ON link_condition WHERE selection_condition

มาลองแยกส่วนต่างๆ ของไวยากรณ์ คำสั่งนี้ดู

ฟิลด์

เนื่องจากทำการเลือกข้อมูลจากหลายตาราง, การเลือกฟิลด์ทั้งหมดผ่าน * จะ ไม่ทำงาน คำสั่งต่อไปนี้จะเลือก ฟิลด์จากตารางหลักเท่านั้น แต่ไม่ใช่จาก ตารางที่เชื่อมโยง:

SELECT *

เพื่อให้ข้อมูลถูกเลือกจากทุก ตาราง จำเป็นต้องระบุชื่อ ตารางสำหรับการเลือกไว้ก่อน *:

SELECT users.*, cities.*

หรือสามารถระบุฟิลด์ที่เราต้องการพร้อม ระบุชื่อตารางไว้ข้างหน้าได้:

SELECT users.name, cities.name

สองวิธีนี้มีปัญหา ประเด็นคือ หากฟิลด์ในตารางมี ชื่อซ้ำกัน ในอาร์เรย์ Python จะเกิดความขัดแย้งของชื่อ และมีเพียงฟิลด์เดียว เท่านั้นที่ชนะ ฟิลด์ที่สองจะหายไป

เพื่อแก้ปัญหา จำเป็นต้องเปลี่ยนชื่อ ฟิลด์ที่ขัดแย้งกันผ่านคำสั่ง as:

SELECT users.name, cities.name as city_name

การเชื่อมโยง

หลังคำสั่ง ON เราต้องระบุ ฟิลด์จากทั้งสองตาราง ซึ่งเป็นจุดที่ การเชื่อมโยงเกิดขึ้น ในกรณีของเราคือฟิลด์ id จากตารางเมือง และฟิลด์ city_id จากตารางผู้ใช้:

ON cities.id=users.city_id

คำสั่งค้นหา

สุดท้าย คำสั่งที่จะดึงผู้ใช้ พร้อมกับเมืองของพวกเขาจะมีลักษณะ ดังนี้:

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

แบบฝึกหัด

สมมติว่าคุณมีตารางสินค้าและ ตารางหมวดหมู่ของพวกเขา เขียนคำสั่ง ที่ดึงชื่อสินค้าพร้อมกับ หมวดหมู่ของพวกเขา

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ