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

MySQL-এ INSERT INTO ... SELECT ব্যবহার করে একটি টেবিলের সর্বোচ্চ ID অন্য টেবিলে ইনসার্ট করা


MySQL-এ সাবকোয়ারি ব্যবহার করে এক টেবিল থেকে মান বের করে অন্য টেবিলে ইনসার্ট করা

MySQL-এ INSERT INTO ... SELECT সিনট্যাক্স ব্যবহার করে এক টেবিল থেকে ডেটা বের করে সরাসরি অন্য টেবিলে ইনসার্ট করা যায়। সাবকোয়ারি ব্যবহার করে এগ্রিগেট মান (যেমন MAX)ও ব্যবহার করা যায়।

উদাহরণ

প্রথম টেবিল:

CREATE TABLE DemoTable1 (Id INT, Name VARCHAR(100));
INSERT INTO DemoTable1 VALUES (1001, 'Chris'), (999, 'Robert'), (1003, 'Mike'), (1002, 'Sam');

দ্বিতীয় টেবিল:

CREATE TABLE DemoTable2 (StudentId INT, StudentFirstName VARCHAR(100));

সর্বোচ্চ ID বের করে সব রোয়ে ইনসার্ট

INSERT INTO DemoTable2 (StudentId, StudentFirstName)
SELECT (SELECT MAX(Id) FROM DemoTable1), Name FROM DemoTable1;

ফলাফল যাচাই

SELECT * FROM DemoTable2;

আউটপুট:

+-----------+------------------+
| StudentId | StudentFirstName |
+-----------+------------------+
| 1003      | Chris            |
| 1003      | Robert           |
| 1003      | Mike             |
| 1003      | Sam              |
+-----------+------------------+

ব্যাখ্যা

  • (SELECT MAX(Id) FROM DemoTable1) — একটি স্কেলার সাবকোয়ারি যা একক মান (1003) রিটার্ন করে।
  • এই মানটি DemoTable1-এর প্রতিটি রোয়ের জন্য StudentId হিসেবে ইনসার্ট হয়।
  • Name কলামটি প্রতিটি রোয়ের জন্য আলাদা আলাদা মান দেয়।

সতর্কতা: সাবকোয়ারি একক মান রিটার্ন করতে হবে (স্কেলার), অন্যথায় ত্রুটি হবে।

  1. MySQL에서 한 테이블의 데이터를 다른 테이블로 복사하기 (INSERT INTO SELECT)

  2. MySQL-এ AUTO_INCREMENT টেবিলে INSERT INTO SELECT ব্যবহার করা

  3. MySQL-এ LEFT() ফাংশন ব্যবহার করে প্রথম অক্ষর বের করে অন্য কলামে রাখা

  4. MySQL-এ কলাম থেকে সর্বোচ্চ মান বের করা