U moet een combinatie van IN()
. gebruiken en GROUP BY ... HAVING
om dit te behalen. Ook is een lidmaatschap niet nodig als je alleen gebruikers-ID's nodig hebt. Dus zoiets als:
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 */
Als u gebruikers-ID's en namen nodig heeft, kunt u deze recordset, afgeleid van de bovenstaande query, als filter toevoegen aan de gebruikerstabel:
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