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

MySQL-এ টেবিল A-র যে রো টেবিল B-তে নেই সেগুলো বের করা (NOT IN / LEFT JOIN)

NOT IN সাবকোয়েরি দিয়ে ডিফারেন্স বের করা

এক টেবিলের রো অন্য টেবিলে আছে কিনা চেক করে না থাকা রোগুলো বের করতে NOT IN সাবকোয়েরি বা LEFT JOIN ... WHERE IS NULL ব্যবহার করা হয়।

উদাহরণ: দুটি টেবিল

mysql> CREATE TABLE A (Value INT);
mysql> INSERT INTO A VALUES (10),(20),(30),(50),(80);

mysql> CREATE TABLE B (Value2 INT);
mysql> INSERT INTO B VALUES (20),(50);

কোয়েরি: A-তে আছে কিন্তু B-তে নেই

mysql> SELECT * FROM A WHERE Value NOT IN (SELECT Value2 FROM B);
+-------+
| Value |
+-------+
| 10    |
| 30    |
| 80    |
+-------+

বিকল্প: LEFT JOIN (বড় টেবিলের জন্য দ্রুত)

SELECT A.* FROM A
LEFT JOIN B ON A.Value = B.Value2
WHERE B.Value2 IS NULL;

সতর্কতা: NOT IN-এ সাবকোয়েরি যদি NULL রিটার্ন করে তবে পুরো ফলাফল খালি আসবে। সেক্ষেত্রে LEFT JOIN বা NOT EXISTS ভালো।

  1. MySQL-এ রিকারসিভ (Recursive) SELECT কোয়েরি করা

  2. MySQL-এ 'SELECT 1 FROM table' এর অর্থ কী?

  3. MySQL-এ একটি টেবিলের সারি যেটি অন্য টেবিলে নেই সেগুলো কীভাবে বের করবেন?

  4. MySQL-এ শেষ ১০টি সারি কীভাবে বের করবেন?