返回具有多个出现的所有记录

时间:2016-11-16 09:20:36

标签: mysql

我有一个看起来像这样的表:

ID     UNIT_ID     MEMBER_ID    CORPORATION_ID
16     1138        0            2
18     1139        0            2
47     7007        0            3
56     1672        0            7

我需要两个查询:一个会给我一个明确的列表,显示在此表中发生在ONCE的corporation_ids,以及一个返回发生2次或更多次的所有corporate_ids的查询。

我将传递一系列应该作为搜索基础的corporate_ids,基本上是IN(2,3,7)。

查询1应该返回3和7(都是单一条目corporation_ids) 查询2应返回2(多个条目corporation_id)

不进行JOIN的原因是公司列表在一个数据库中,连接(此表)在另一个数据库中。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

后期聚合检查在这里很有用

SELECT corporation_id FROM t WHERE ID IN(2,3,7)
GROUP BY corporation_id
HAVING COUNT(*)=1

SELECT corporation_id FROM t WHERE ID IN(2,3,7)
GROUP BY corporation_id
HAVING COUNT(*)>1