0
我有一个DB这样的:MySQL的 - 如果选择匹配多个值
TagSetMap
id | setId | tagId
------------------
1 | 1 | 1
2 | 2 | 2
3 | 3 | 1
4 | 3 | 2
我要检索的SETID如果标签识别匹配1和2,我已经能够用做:
SELECT TagSetMap.SetId From TagSetMap
WHERE TagSetMap.TagId IN (1, 2)
GROUP BY TagSetMap.SetId HAVING COUNT(*) = 2
但是,如果我想要得到这样的标签识别= 1这个查询不起作用,因为它会给我带回两个SETID = 1和SETID = 3,甚至用下面的查询:
SELECT TagSetMap.SetId From TagSetMap
WHERE TagSetMap.TagId IN (1)
GROUP BY TagSetMap.SetId HAVING COUNT(*) = 1
有没有办法修改查询,以便它只给我明确匹配我的目标集(而不是超集)的结果?
谢谢!
组由两列问题 – twentylemon
可怕的字眼你能写出来的SQL查询,你试过吗?如果格式很好,可能会更容易理解。 – Drew
@CPL – Breedly