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

MySQL-এ সাবকোয়েরি দিয়ে ডুপ্লিকেট কলাম মান থাকলে অন্য কলামের মান অনুযায়ী সারি বাদ দেওয়া

সমস্যা

যদি একটি StudentId-র সাথে নির্দিষ্ট মার্কস (যেমন ৮৯) থাকে, এবং সেই StudentId-র অন্য রেকওর্ডও থাকে, তবে সেটাও বাদ দিতে হবে।

সারণি ও ডেটা

mysql> create table DemoTable1427 (StudentId int, StudentMarks int);
mysql> insert into DemoTable1427 values(201,89),(201,99),(210,98);

কোয়েরি

mysql> select * from DemoTable1427
    -> where StudentId NOT IN (select distinct StudentId from DemoTable1427 where StudentMarks=89);

ফলাফল

+-----------+--------------+
| StudentId | StudentMarks |
+-----------+--------------+
| 210       | 98           |
+-----------+--------------+

ব্যাখ্যা

  • সাবকোয়েরি: SELECT DISTINCT StudentId FROM DemoTable1427 WHERE StudentMarks=89 → {201}
  • মূল কোয়েরি: StudentId ২০১ না হলে এমন সারি বের করে → শুধু ২১০
  • NOT IN NULL মান থাকলে সমস্যা সৃষ্টি করতে পারে, সেক্ষেত্রে NOT EXISTS ব্যবহার করুন
  1. MySQL-এ GROUP BY এবং MIN() ব্যবহার করে টাইমস্ট্যাম্প থেকে সর্বপ্রাচীন তারিখ বের করা

  2. MySQL-এ GROUP BY HAVING এবং IN() ব্যবহার করে একাধিক শর্ত পূরণকারী সারি বের করা

  3. MySQL-এ IF() এবং টাইমস্ট্যাম্প ব্যবহার করে ২ বছরের বেশি পুরনো রেকর্ডকে বুলিয়ান ফ্ল্যাগে রূপান্তর করা

  4. MySQL-এ ভ্যালু ০ হলে অন্য কলাম থেকে ডেটা সিলেক্ট করা