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

MySQL-এ দুটি টেবিল জয়ন করা (JOIN)

প্রথমে দুটি টেবিল তৈরি করি এবং ফরেন কি কনস্ট্রেইন্ট দিয়ে সংযুক্ত করি।

১. পেরেন্ট টেবিল তৈরি ও ডেটা ইনসার্ট

mysql> CREATE TABLE ParentTable (
    -> UniqueId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeName VARCHAR(10)
    -> );
Query OK, 0 rows affected (0.56 sec)
mysql> INSERT INTO ParentTable(EmployeeName) VALUES('John');
mysql> INSERT INTO ParentTable(EmployeeName) VALUES('Carol');
mysql> INSERT INTO ParentTable(EmployeeName) VALUES('Sam');
mysql> INSERT INTO ParentTable(EmployeeName) VALUES('Bob');
mysql> SELECT * FROM ParentTable;
+----------+--------------+
| UniqueId | EmployeeName |
+----------+--------------+
|        1 | John         |
|        2 | Carol        |
|        3 | Sam          |
|        4 | Bob          |
+----------+--------------+
4 rows in set (0.00 sec)

২. চাইল্ড টেবিল তৈরি (ফরেন কি সহ) ও ডেটা ইনসার্ট

mysql> CREATE TABLE ChildTable (
    -> UniqueId INT NOT NULL PRIMARY KEY,
    -> EmployeeAddress VARCHAR(100),
    -> CONSTRAINT fk_uniqueId FOREIGN KEY(UniqueId) REFERENCES ParentTable(UniqueId)
    -> );
Query OK, 0 rows affected (0.54 sec)
mysql> INSERT INTO ChildTable VALUES(1, '15 West Shady Lane Starkville, MS 39759');
mysql> INSERT INTO ChildTable VALUES(2, '72 West Rock Creek St. Oxford, MS 38655');
mysql> INSERT INTO ChildTable(UniqueId) VALUES(3);
mysql> INSERT INTO ChildTable VALUES(4, '119 North Sierra St. Marysville, OH 43040');
mysql> SELECT * FROM ChildTable;
+----------+-------------------------------------------+
| UniqueId | EmployeeAddress                           |
+----------+-------------------------------------------+
|        1 | 15 West Shady Lane Starkville, MS 39759   |
|        2 | 72 West Rock Creek St. Oxford, MS 38655   |
|        3 | NULL                                      |
|        4 | 119 North Sierra St. Marysville, OH 43040 |
+----------+-------------------------------------------+
4 rows in set (0.00 sec)

৩. LEFT JOIN দিয়ে দুটি টেবিল জয়ন করা

mysql> SELECT ParentTable.UniqueId, ParentTable.EmployeeName, ChildTable.EmployeeAddress
    -> FROM ParentTable
    -> LEFT JOIN ChildTable ON ParentTable.UniqueId = ChildTable.UniqueId;
+----------+--------------+-------------------------------------------+
| UniqueId | EmployeeName | EmployeeAddress                           |
+----------+--------------+-------------------------------------------+
|        1 | John         | 15 West Shady Lane Starkville, MS 39759   |
|        2 | Carol        | 72 West Rock Creek St. Oxford, MS 38655   |
|        3 | Sam          | NULL                                      |
|        4 | Bob          | 119 North Sierra St. Marysville, OH 43040 |
+----------+--------------+-------------------------------------------+
4 rows in set (0.00 sec)

ব্যাখ্যা: LEFT JOIN-এ বাম পাশের টেবিল (ParentTable) এর সকল রো থাকে, ডান পাশের টেবিল (ChildTable) এর মিল থাকলে সেটি দেখায়, না থাকলে NULL দেখায়। অন্যান্য JOIN টাইপ: INNER JOIN, RIGHT JOIN, CROSS JOIN।

  1. একক MySQL কোয়েরিতে দুটি টেবিল থেকে রো কাউন্ট করার পদ্ধতি

  2. MySQL-এ একটি কোয়েরি দিয়ে দুটি টেবিল থেকে ডেটা নির্বাচন করা

  3. MySQL-এ একক SELECT কোয়েরিতে দুটি টেবিল থেকে ডেটা ফেচ করা

  4. MySQL-এ UNION ALL এবং INSERT INTO SELECT ব্যবহার করে একক কোয়েরিতে দুটি টেবিলে ডেটা ইনসার্ট করুন