आप 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)
INSERT कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें। क्वेरी इस प्रकार है:
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)
SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है:
mysql> SELECT * FROM DifferentRows;
निम्न आउटपुट है।
+----------+-----------+ | FirstRow | SecondRow | +----------+-----------+ | 10 | 10 | | 10 | 100 | | 10 | 300 | | 20 | 100 | +----------+-----------+ 4 rows in set (0.00 sec)
यहाँ वह क्वेरी है जो अलग-अलग पंक्तियों पर अलग-अलग शर्तों को पूरा करने वाले मान चुनती है। यह सभी विशिष्ट 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)