MySQL में दो टेबल को JOIN करना
दो टेबल को जोड़ने के लिए आमतौर पर विदेशी कुंजी (Foreign Key) का उपयोग किया जाता है। यहां LEFT JOIN का उदाहरण दिया गया है।
चरण 1: पैरेंट टेबल बनाएं
mysql> create table ParentTable (
-> UniqueId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName varchar(10)
-> );
डेटा डालें:
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');
चरण 2: चाइल्ड टेबल बनाएं (विदेशी कुंजी के साथ)
mysql> create table ChildTable (
-> UniqueId int NOT NULL PRIMARY KEY,
-> EmployeeAddress varchar(100),
-> CONSTRAINT fk_uniqueId FOREIGN KEY(UniqueId) references ParentTable(UniqueId)
-> );
डेटा डालें:
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');
चरण 3: 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 | +----------+--------------+-------------------------------------------+
JOIN के प्रकार
- INNER JOIN: केवल मेल खाने वाली पंक्तियाँ
- LEFT JOIN: बाईं टेबल की सभी पंक्तियाँ + दाईं टेबल से मेल
- RIGHT JOIN: दाईं टेबल की सभी पंक्तियाँ + बाईं टेबल से मेल