Mysql 选择columnA具有多个唯一columnB值的行

Mysql 选择columnA具有多个唯一columnB值的行,mysql,Mysql,如何检索colA具有多个唯一colB值的行 例如: +------+------+ | colA | colB | +------+------+ | 1 | A | | 1 | B | | 2 | C | | 3 | D | | 3 | D | +------+------+ 鉴于上述数据,我只想检索colA=1的记录,因为这是colB中唯一一个具有多个唯一值的列 我的头脑绕不过去。我觉得我错过了一些非常明显的东西 这是可能的吗?您

如何检索
colA
具有多个唯一
colB
值的行

例如:

+------+------+
| colA | colB |
+------+------+
|  1   |  A   |
|  1   |  B   |
|  2   |  C   |
|  3   |  D   |
|  3   |  D   |
+------+------+
鉴于上述数据,我只想检索
colA=1
的记录,因为这是
colB
中唯一一个具有多个唯一值的列

我的头脑绕不过去。我觉得我错过了一些非常明显的东西


这是可能的吗?

您可以使用
exists
作为

select * from table_name t1
where exists(
  select 1 from table_name t2
  where t1.colA = t2.colA
  and t1.colB <> t2.colB
)
您可以使用
COUNT(DISTINCT..)
获取每列a值的不同列b值的计数,然后使用
HAVING
子句仅获取您需要的:

SELECT colA
FROM myTable
GROUP BY colA
HAVING COUNT(DISTINCT colB) > 1;

下面是一个示例。

谢谢-第一个查询就是我需要的
SELECT colA
FROM myTable
GROUP BY colA
HAVING COUNT(DISTINCT colB) > 1;