Python MySQL Join

দুটো বা বেশি সারণী মিলিয়ে করা

আপনি JOIN স্টেটমেন্ট ব্যবহার করে এই সারণীগুলোর মধ্যে সংযোগ করে দুটো বা বেশি সারণীকে মিলিয়ে করতে পারেন。

আপনার কাছে "users" এবং "products" সারণী থাকলে:

users

{ 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:}

products

{ id: 154, name: 'Chocolate Heaven' },
{ id: 155, name: 'Tasty Lemons' },
{ id: 156, name: 'Vanilla Dreams' }

users এর fav ক্ষেত্র এবং products id ক্ষেত্রটি দুটো সারণীকে মিলিয়ে করতে ব্যবহার করা যায়。

ইনস্ট্যান্স

users and products মিলিয়ে কোন ব্যবহারকারীর পছন্দ পণ্য নাম দেখুন:

import mysql.connector
mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="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)

ইনস্ট্যান্স চালু করা

মন্তব্য:আপনি 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"

ইনস্ট্যান্স চালু করা

মন্তব্য:যে কোনো পণ্যের জন্য আগ্রহী না থাকা হ্যান্না ও মাইকেল ফলাফলে সন্নিবিষ্ট হয়নি。