查找数据库中的所有类似对

时间:2016-12-13 01:12:50

标签: mysql

我有一张这样的桌子。

A    B
_    _

1   100
1   101 
2   105
2   105
2   104
3   106

我需要输出B值出现相同次数的所有A值。因此,预期产出:

A
_

1
3

这是因为1 - 1001 - 101每次出现一次。 2是异教徒,因为2 - 105出现两次,2 - 104只出现一次。 3没问题,因为它只有一个项目,106

到目前为止我的解决方案:

SELECT *
FROM Table t1
JOIN Table t2
ON t2.A = t1.A
WHERE t1.B = t2.B;

1 个答案:

答案 0 :(得分:0)

使用1GROUP BY编写一个只返回重复计数为COUNT(*)的对的查询。然后将其用作子查询,以便只返回不同的A值。

SELECT DISTINCT A
FROM (SELECT A, B
      FROM Table
      GROUP BY A, B
      HAVING COUNT(*) = 1) AS x