ভিন্ন রোতে ভিন্ন শর্ত পূরণ করে মান সিলেক্ট করতে IN() এবং GROUP BY ব্যবহার করতে পারেন। সিনট্যাক্স:
SELECT yourColumnName1 FROM yourTableName WHERE yourColumnName2 IN(value1, value2, ... N) GROUP BY yourColumnName1 HAVING COUNT(DISTINCT yourColumnName2) = conditionValue;
সিনট্যাক্স বুঝতে একটি টেবিল তৈরি করি:
mysql> CREATE TABLE DifferentRows (
-> FirstRow INT,
-> SecondRow INT
-> ); Query OK, 0 rows affected (0.72 sec)
ইনসার্ট কমান্ড দিয়ে কিছু রেকর্ড ইনসার্ট করি:
mysql> INSERT INTO DifferentRows VALUES(10,10); Query OK, 1 row affected (0.15 sec) mysql> INSERT INTO DifferentRows VALUES(10,100); Query OK, 1 row affected (0.17 sec) mysql> INSERT INTO DifferentRows VALUES(10,300); Query OK, 1 row affected (0.16 sec) mysql> INSERT INTO DifferentRows VALUES(20,100); Query OK, 1 row affected (0.18 sec)
সিলেক্ট স্টেটমেন্ট দিয়ে সব রেকর্ড দেখি:
mysql> SELECT * FROM DifferentRows;
আউটপুট:
+----------+-----------+ | FirstRow | SecondRow | +----------+-----------+ | 10 | 10 | | 10 | 100 | | 10 | 300 | | 20 | 100 | +----------+-----------+ 4 rows in set (0.00 sec)
ভিন্ন রোতে ভিন্ন শর্ত পূরণ করে মান সিলেক্ট করার ক্যোয়ারি। এটি সেই সব ডISTINCT FirstRow রেকর্ড দেবে যাদের SecondRow 10, 100, 300 আছে:
mysql> SELECT FirstRow FROM DifferentRows
-> WHERE SecondRow IN(10,100,300)
-> GROUP BY FirstRow
-> HAVING COUNT(DISTINCT SecondRow) = 3;
আউটপুট:
+----------+ | FirstRow | +----------+ | 10 | +----------+ 1 row in set (0.00 sec)