MySQL EXCEPT সেট অপারেটর সাপোর্ট করে না (PostgreSQL, SQL Server সাপোর্ট করে)। এর বিকল্প হিসেবে NOT IN বা NOT EXISTS ব্যবহার করা হয়।
দুই টেবিল তৈরি
mysql> CREATE TABLE DemoTable1 (Number1 INT); mysql> INSERT INTO DemoTable1 VALUES (100), (200), (300); mysql> CREATE TABLE DemoTable2 (Number1 INT); mysql> INSERT INTO DemoTable2 VALUES (100), (400), (300);
DemoTable1-এ আছে কিন্তু DemoTable2-এ নেই (EXCEPT-এর কাজ)
mysql> SELECT Number1 FROM DemoTable1
WHERE Number1 NOT IN (SELECT Number1 FROM DemoTable2);
ফলাফল
+---------+ | Number1 | +---------+ | 200 | +---------+
বিকল্প: NOT EXISTS (নাল-সেফ)
SELECT Number1 FROM DemoTable1 t1 WHERE NOT EXISTS (SELECT 1 FROM DemoTable2 t2 WHERE t2.Number1 = t1.Number1);
পার্থক্য: NOT IN-এ সাবকোয়েরি NULL রিটার্ন করলে পুরো ফলাফল খালি হয়। NOT EXISTS এই সমস্যা নেই এবং সাধারণত দ্রুত। বড় ডেটাসেটের জন্য LEFT JOIN ... WHERE t2.id IS NULLও ব্যবহার করা হয়।