Python MySQL जोड़

दो या अधिक तालिकाओं को संयोजित करना

आप JOIN संग्रह का उपयोग कर सकते हैं, इनके बीच के संबंधित स्तम्भों के आधार पर दो या अधिक तालिकाओं की पढ़ाई कर सकते हैं。

आपके पास "users" तालिका और "products" तालिका होनी चाहिए:

यूजर्स

{ आईडी: 1, नाम: 'जॉन', फेव: 154},
{ आईडी: 2, नाम: 'पीटर', फेव: 154},
{ आईडी: 3, नाम: 'एमी', फेव: 155},
{ आईडी: 4, नाम: 'हैना', फेव:},
{ आईडी: 5, नाम: 'माइकेल', फेव:}

प्रोडक्ट्स

{ आईडी: 154, नाम: 'चॉकलेट हेवन' },
{ आईडी: 155, नाम: 'टेस्टी लीमोन्स' },
{ आईडी: 156, नाम: 'वैनिला ड्रीम्स' }

यूजर्स के फेव फील्ड और products का आईडी फील्ड को संयोजित करने के लिए फील्ड का उपयोग करें。

इंस्टांस

उपयोगकर्ता और उत्पाद को संयोजित करके, उपयोगकर्ता के सबसे पसंदीदा उत्पाद का नाम देखें:

आयऑर्ट माइसकियून.कनेक्ट() आयात करें
माइडीबी = माइसकियून.कनेक्ट()
  होस्ट="लोकलहोस्ट",
  यूजर="आपका यूजरनेम",
  पासवर्ड="आपका पासवर्ड",
  डाटाबेस="माइडाटाबेस"
)
माइक्रोसर को माइडीबी कर्सर()
sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

  INNER JOIN products ON users.fav = products.id"
mycursor.execute(sql)
myresult = mycursor.fetchall()
for x in myresult:
  print(x)

इंस्टांस चलाएं

टिप्पणी:आप JOIN का उपयोग INNER JOIN के बजाय कर सकते हैं।आप दोनों को एक ही परिणाम प्राप्त होगा。

LEFT JOIN

इस उदाहरण में, हैना और माइकल को निष्कासित किया गया है, क्योंकि INNER JOIN केवल मेल होने वाले रिकॉर्डों को दिखाता है。

यदि आप इसके बावजूद सभी उपयोगकर्ताओं को दिखाना चाहते हैं, जिनके पास कोई पसंदीदा उत्पाद नहीं है, तो LEFT JOIN वाक्ययोजना का उपयोग करें:

इंस्टांस

सभी उपयोगकर्ताओं और उनके पसंदीदा उत्पादों को चुनें:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

  LEFT JOIN products ON users.fav = products.id"

इंस्टांस चलाएं

RIGHT JOIN

यदि आप सभी उत्पादों और उनके प्रशंसकों को वापस करना चाहते हैं और उनमें से कोई भी उत्पाद को प्रशंसा नहीं करता है, तो RIGHT JOIN वाक्ययोजना का उपयोग करें:

इंस्टांस

सभी उत्पादों और उनके प्रशंसकों को चुनें:

sql = "SELECT \

  users.name AS user, \

  products.name AS favorite \

  FROM users \

  RIGHT JOIN products ON users.fav = products.id"

इंस्टांस चलाएं

टिप्पणी:उत्पाद के लिए रुचि नहीं रखने वाले हैना और माइकल निष्कासित नहीं हैं।