您可以修改您的查询如下:
SELECT COUNT(DISTINCT(user_id)) FROM users_pets_map WHERE pet_id IN (SELECT id
FROM pets WHERE animal = 'bird') AND user_id NOT IN (SELECT user_id FROM
users_pets_map WHERE pet_id IN (SELECT id FROM pets WHERE animal <> 'bird'))
最后一个子查询将获取不是鸟类的 pet_id,它之外的查询将获取除鸟类以外的动物的用户。最后结合您当前的查询,它将为您获取没有任何其他动物以及鸟类的用户。尽管就时间复杂度而言,上述查询不是最佳解决方案,但它是众多解决方案之一,并且更易于理解。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句