MySQL - 选择2列的不同组合并分别返回值

时间:2014-01-27 22:13:39

标签: mysql

我需要选择A列和B列的不同组合,并为A,B组合不唯一的所有行返回A的值。

这是我的查询,我想以某种方式添加要显示在结果中的列A:

SELECT DISTINCT A, B, count(id) as cnt FROM files_imported WHERE file_id = 13 GROUP BY A, B HAVING cnt > 1

查询工作正常,但我需要对其进行修改,以便在满足上述条件的情况下获取A的值。

2 个答案:

答案 0 :(得分:0)

您可以使用“UNION”合并两个查询结果(需要指出它们需要具有相同的列数据类型 - 这可以解释来自第二个查询的'' 所以你的查询将是:

SELECT DISTINCT A, B, count(id) as cnt FROM files_imported WHERE file_id = 13 GROUP BY A, B HAVING cnt > 1
UNION 
SELECT DISTINCT A, '', count(id) as cnt FROM files_imported WHERE file_id = 13 GROUP BY A, B HAVING cnt = 1

答案 1 :(得分:0)

这是你想要的吗?

SELECT distinct A
FROM files_imported
WHERE file_id = 13
GROUP BY A, B
HAVING count(id) > 1;
相关问题