2014-01-27 97 views
0

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

这是我的查询,不知何故,我希望添加的A列在结果中显示哪些:

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

查询工作正常的是,但我需要修改它,所以我可以得到的值A满足上述条件。

回答

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 
0

这是你想要的吗?

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