কম্পিউটার টিউটোরিয়াল

Python দিয়ে MySQL-এ SELF JOIN করা

SQL-এ দুটি টেবিল জয়েন করা যায় সাধারণ কলাম বা শর্তের ভিত্তিতে। SELF JOIN হলো একই টেবিলের সাথে নিজেরাই জয়েন করা। এতে টেবিলের দুটি কপি বিবেচনা করে রোগুলো নির্দিষ্ট শর্ত অনুযায়ী মিলিয়ে দেওয়া হয়।

সিনট্যাক্স

SELECT a.column1, b.column2 FROM table_name a, table_name b WHERE condition;

a ও b হলো একই টেবিলের দুটি এলিয়াস (alias)।

ধরুন Students টেবিল:

+----------+--------------+-----------+
| id       | Student_name | Dept_id   |
+----------+--------------+-----------+
| 1        | Rahul        | 120       |
| 2        | Rohit        | 121       |
| 3        | Kirat        | 121       |
| 4        | Inder        | 123       |
+----------+--------------+-----------+

আমরা a.Dept_id < b.Dept_id শর্তে সেলফ জয়েন করব। অর্থাৎ প্রতিটি রো টেবিলের অন্যান্য সেই রোদের সাথে মিলবে যাদের Dept_id বড়।

Python-এ MySQL ব্যবহার করে SELF JOIN-এর ধাপসমূহ

  1. MySQL কনেক্টর ইম্পোর্ট করুন
  2. connect() ব্যবহার করে কনেকশন স্থাপন করুন
  3. cursor() মেথড দিয়ে কার্সার অবজেক্ট তৈরি করুন
  4. উপযুক্ত MySQL স্টেটমেন্ট ব্যবহার করে কোয়েরি তৈরি করুন
  5. execute() মেথড দিয়ে SQL কোয়েরি এক্সিকিউট করুন
  6. কনেকশন বন্ধ করুন

উদাহরণ

import mysql.connector

db = mysql.connector.connect(
    host="your_host",
    user="your_username",
    password="your_password",
    database="database_name"
)

cursor = db.cursor()
query = "SELECT a.Dept_id, b.Student_name FROM Students a, Students b WHERE a.Dept_id < b.Dept_id"
cursor.execute(query)
rows = cursor.fetchall()
for x in rows:
    print(x)
db.close()

আউটপুট

Dept_id Student_name
120Rohit
120Kirat
120Inder
121Inder
121Inder
  1. পাইথনে টেনসরফ্লো ব্যবহার করে দুটি ম্যাট্রিক্স গুণ করার পদ্ধতি

  2. পাইথনে টেনসরফ্লো ব্যবহার করে দুটি ম্যাট্রিক্স যোগ করার পদ্ধতি

  3. পাইথনে দুটি ডিকশনারি মার্জ (Merge) করা

  4. Python-এ দুটি ভেরিয়েবল স্ব্যাপ (Swap) করা