MySQL SELECT একবারে একটি টেবিল থেকে ডেটা আনতে পারে, কিন্তু একাধিক টেবিলের ডেটা একসাথে পেতে জয়েন অপারেশন ব্যবহার করা হয়।
MySQL জয়েন হলো দুই বা অধিক টেবিলের কমন কলামের ভ্যালু alapján ডেটা লিংক করার পদ্ধতি, যার ফলাফল একটি অস্থায়ী টেবিল। কমন কলামগুলোকে জয়েন কি বা কমন কি বলা হয়।
MySQL জয়েনের প্রকার:
১. ক্রস জয়েন (Cross Join)
বেসিক জয়েন। টেবিল-১-এর প্রতিটি সারি টেবিল-২-এর প্রতিটি সারির সাথে জয়েন হয়। ৪ সারির টেবিল-১ এবং ৪ সারির টেবিল-২ করস জয়েন করলে ১৬ সারি ফেরত আসে।
mysql> Select tbl_1.id, tbl_2.id FROM tbl_1 CROSS JOIN tbl_2; -- ১৬ সারি ফেরত দেবে
২. ইনার জয়েন / ইকুই জয়েন (Inner Join / Equi Join)
জয়েন-প্রেডিকেট (কন্ডিশন) সন্তুষ্ট সারিগুলোই ফেরত দেয়।
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 INNER JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+----+ | id | id | +----+----+ | 4 | A | +----+----+
৩. লেফট জয়েন (Left Join)
বাম টেবিলের সকল সারি ফেরত দেয়। ম্যাচ না হলে ডান টেবিলের কলামে NULL থাকে।
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.name = tbl_2.name; +----+------+ | id | id | +----+------+ | 1 | NULL | | 2 | NULL | | 3 | NULL | | 4 | A | +----+------+
৪. রাইট জয়েন (Right Join)
লেফট জয়েনের বিপরীত। ডান টেবিলের সকল সারি ফেরত দেয়। ম্যাচ না হলে বাম টেবিলের কলামে NULL থাকে।
mysql> SELECT tbl_1.id,tbl_2.id FROM tbl_1 RIGHT JOIN tbl_2 ON tbl_1.name = tbl_2.name; +------+----+ | id | id | +------+----+ | 4 | A | | NULL | B | | NULL | C | | NULL | D | +------+----+