প্রথমে দুটি টেবিল তৈরি করি এবং ফরেন কি কনস্ট্রেইন্ট দিয়ে সংযুক্ত করি।
১. পেরেন্ট টেবিল তৈরি ও ডেটা ইনসার্ট
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।