आपको IN()
. के संयोजन का उपयोग करना होगा और GROUP BY ... HAVING
इसे पाने के लिये। यदि आपको केवल यूजर आईडी की आवश्यकता है तो इसमें शामिल होने की कोई आवश्यकता नहीं है। तो कुछ इस तरह:
SELECT user, COUNT(attribute) AS attribute_count
FROM attributes
WHERE attribute IN(...) /* include your set of attributes here */
GROUP BY user
HAVING attribute_count = ? /* include number equal to number of attribute ID's in IN() above */
यदि आपको उपयोगकर्ता आईडी और नामों की आवश्यकता है तो आप उपरोक्त क्वेरी से प्राप्त इस रिकॉर्ड सेट को उपयोगकर्ता तालिका में फ़िल्टर के रूप में आसानी से शामिल कर सकते हैं:
SELECT user.id, user.name
FROM user
INNER JOIN
(
SELECT user, COUNT(attribute) AS attribute_count
FROM attributes
WHERE attribute IN(...) /* include your set of attributes here */
GROUP BY user
HAVING attribute_count = ? /* include number equal to number of attribute ID's in IN() above */
) AS filter
ON user.id = filter.user