पायथन MySQL शामिल हों
दो या दो से अधिक तालिकाओं में शामिल हों
आप जॉइन स्टेटमेंट का उपयोग करके, उनके बीच संबंधित कॉलम के आधार पर दो या दो से अधिक तालिकाओं से पंक्तियों को जोड़ सकते हैं।
विचार करें कि आपके पास "उपयोगकर्ता" तालिका और "उत्पाद" तालिका है:
उपयोगकर्ताओं
{ id: 1, name: 'John', fav: 154},
{ id:
2, name: 'Peter', fav: 154},
{ id: 3, name: 'Amy', fav: 155},
{ id: 4, name: 'Hannah', fav:},
{ id: 5, name: 'Michael', fav:}
उत्पादों
{ id: 154, name:
'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{
id: 156, name: 'Vanilla Dreams' }
fav
इन दो तालिकाओं को उपयोगकर्ता के क्षेत्र और उत्पादों के क्षेत्र
का उपयोग करके जोड़ा जा सकता है id
।
उदाहरण
उपयोगकर्ताओं के पसंदीदा उत्पाद का नाम देखने के लिए उपयोगकर्ताओं और उत्पादों से जुड़ें:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="mydatabase"
)
mycursor = mydb.cursor()
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)
नोट: आप INNER JOIN के बजाय 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"
राइट जॉइन
यदि आप सभी उत्पादों को वापस करना चाहते हैं, और जिन उपयोगकर्ताओं ने उन्हें अपने पसंदीदा के रूप में रखा है, भले ही कोई उपयोगकर्ता उनके पसंदीदा के रूप में नहीं है, तो राइट जॉइन स्टेटमेंट का उपयोग करें:
उदाहरण
सभी उत्पादों का चयन करें, और उपयोगकर्ता (उपयोगकर्ताओं) को उनके पसंदीदा के रूप में चुनें:
sql = "SELECT \
users.name AS user,
\
products.name AS favorite \
FROM users \
RIGHT JOIN
products ON users.fav = products.id"
नोट: हन्ना और माइकल, जिनके पास कोई पसंदीदा उत्पाद नहीं है, परिणाम में शामिल नहीं हैं।