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

MySQL-এ একটি টেবিলের রেকর্ড যেগুলো অন্য টেবিলে নেই, সেগুলো খুঁজে বের করা

দুটি টেবিলের মধ্যে যেগুলো প্রথম টেবিলে নেই, সেগুলো খুঁজে বের করতে NOT IN সাবকোয়েরি ব্যবহার করা হয়।

টেবিল ও ডেটা

mysql> CREATE TABLE PresentHistory (HisID INT, HisName VARCHAR(100));
mysql> INSERT INTO PresentHistory VALUES(1,'John'),(2,'Bob');

mysql> CREATE TABLE PastHistory (PastId INT, PastName VARCHAR(100));
mysql> INSERT INTO PastHistory VALUES(1,'John'),(2,'Bob'),(3,'Carol'),(4,'Jason');

খুঁজে বের করা

mysql> SELECT * FROM PastHistory WHERE PastName NOT IN (SELECT HisName FROM PresentHistory);
+--------+----------+
| PastId | PastName |
+--------+----------+
| 3      | Carol    |
| 4      | Jason    |
+--------+----------+

Carol এবং Jason প্রথম টেবিলে নেই।

বিকল্প: LEFT JOIN

SELECT p.* FROM PastHistory p LEFT JOIN PresentHistory pr ON p.PastName = pr.HisName WHERE pr.HisName IS NULL;

বড় ডেটাসেটের জন্য LEFT JOIN দ্রুততর।

  1. MySQL-এ স্টোরড প্রসিডিউর থেকে টেবিলের সব রেকর্ড দেখানো

  2. MySQL-এ একটি স্কিমা থেকে অন্য স্কিমায় ডেটা কপি করা

  3. MySQL-এ UPDATE JOIN ব্যবহার করে অন্য টেবিল থেকে ডেটা আপডেট করা

  4. MySQL-এ একটি টেবিল থেকে অন্য টেবিলে ডেটা ইনসার্ট করা