यहां कोई सबक्वायरी का उपयोग नहीं करते हुए, एक प्रदर्शनकारी दृष्टिकोण है। आप केवल Having
. में परिणामों को फ़िल्टर कर सकते हैं सशर्त एकत्रीकरण का उपयोग करते हुए खंड:
SELECT
conversation_id
FROM assoc_user__conversation
GROUP BY conversation_id
HAVING
-- all the rows to exists only for 1000001 or 1000002 only
SUM(user_id IN (1000001, 1000002)) = COUNT(*)
परिणाम
| conversation_id |
| --------------- |
| 10 |
सशर्त एकत्रीकरण का एक और रूपांतर संभव है:
SELECT
conversation_id
FROM assoc_user__conversation
GROUP BY conversation_id
HAVING
-- atleast one row for 1000001 to exists
SUM(user_id = 1000001) AND
-- atleast one row for 1000002 to exists
SUM(user_id = 1000002) AND
-- no row to exist for other user_id values
NOT SUM(user_id NOT IN (1000001, 1000002))