ALL, ANY, SOME, IN ऑपरेटर मान की तुलना सबक्वेरी द्वारा लौटाए गए प्रत्येक मान से करते हैं। ये सभी एक तुलना ऑपरेटर के बाद आने चाहिए।
सिंटैक्स:
-- ALL: सभी मानों से तुलना सत्य होनी चाहिए
operand comparison_operator ALL (subquery)
-- ANY: कम से कम एक मान से तुलना सत्य होनी चाहिए
operand comparison_operator ANY (subquery)
-- SOME: ANY का पर्याय
operand comparison_operator SOME (subquery)
-- IN: मान सबक्वेरी परिणाम सेट में मौजूद होना चाहिए
operand comparison_operator IN (subquery)
उदाहरण टेबल्स:
-- Customers
+-------------+----------+
| Customer_Id | Name |
+-------------+----------+
| 1 | Rahul |
| 2 | Yashpal |
| 3 | Gaurav |
| 4 | Virender |
+-------------+----------+
-- Reservations
+------+-------------+------------+
| ID | Customer_id | Day |
+------+-------------+------------+
| 1 | 1 | 2017-12-30 |
| 2 | 2 | 2017-12-28 |
| 3 | 2 | 2017-12-29 |
| 4 | 1 | 2017-12-25 |
| 5 | 3 | 2017-12-26 |
+------+-------------+------------+
ALL ऑपरेटर - किसी भी बुकिंग से मेल नहीं खाने वाले ग्राहक:
mysql> SELECT customer_id from Customers
-> WHERE customer_id <> ALL(Select customer_id from reservations);
+-------------+
| customer_id |
+-------------+
| 4 |
+-------------+
ग्राहक 4 (Virender) की ID, सबक्वेरी द्वारा लौटाई गई सभी IDs (1,2,3) से अलग है।
ANY ऑपरेटर - कम से कम एक बुकिंग वाले ग्राहक:
mysql> SELECT customer_id from customers
-> WHERE customer_id = ANY(Select customer_id from reservations);
+-------------+
| customer_id |
+-------------+
| 1 |
| 2 |
| 3 |
+-------------+
SOME ऑपरेटर - ANY के समान:
mysql> SELECT customer_id from customers
-> WHERE customer_id = Some(Select customer_id from reservations);
+-------------+
| customer_id |
+-------------+
| 1 |
| 2 |
| 3 |
+-------------+
IN ऑपरेटर - सूची में मौजूद मान:
mysql> SELECT customer_id from customers
-> WHERE customer_id IN (Select customer_id from reservations);
+-------------+
| customer_id |
+-------------+
| 1 |
| 2 |
| 3 |
+-------------+
मुख्य अंतर:
IN== ANY(समान व्यवहार)NOT IN≠<> ALL(NULL मानों के कारण व्यवहार भिन्न)SOME=ANY(SQL मानक में दोनों)