选择数据并在所选记录中查找重复值的 sql 查询

Posted

技术标签:

【中文标题】选择数据并在所选记录中查找重复值的 sql 查询【英文标题】:sql query that select data and find duplicate values in selected records 【发布时间】:2015-08-21 06:48:22 【问题描述】:

我正在尝试创建一个将以下两个查询组合在一起的查询。

第一个查询:

select * from mutual_friends where fb_id =8807531 OR fb_id=102061

第二个查询:

SELECT name,picture, COUNT(picture) 
FROM mutual_friends
GROUP BY picture
HAVING ( COUNT(picture) > 1 )

第一次查询选择两个id的数据,然后第二次查询在图片列中查找重复项

我想要使用单个查询的结果

如果有人能帮助我解决这个问题,我将非常感激

【问题讨论】:

如果你想要两个查询结果集,为什么你不能去简单的联合 要同时在所有 RDBMS 上工作? 【参考方案1】:
SELECT name,picture, COUNT(picture) 
FROM mutual_friends
where fb_id = 8807531 OR fb_id = 102061
GROUP BY picture
HAVING ( COUNT(picture) > 1 )

【讨论】:

【参考方案2】:

如果您正在寻找所有带有重复图片的 id.. 那么我建议您的答案为

SELECT fb_id, name, picture 
FROM mutual_friends
WHERE picture IN (
    SELECT picture
    FROM mutual_friends 
    GROUP BY picture
    HAVING COUNT(picture) > 1)

或者更具体一些,因为您的问题没有清楚地解释您在寻找什么。

【讨论】:

【参考方案3】:

你可以这样做:

 SELECT name,picture, COUNT(picture) 
 FROM mutual_friends
 WHERE fb_id = 8807531 OR fb_id = 102061
 GROUP BY picture
 HAVING ( COUNT(picture) > 1 )

【讨论】:

以上是关于选择数据并在所选记录中查找重复值的 sql 查询的主要内容,如果未能解决你的问题,请参考以下文章

MySQL从一个表中选择行,第二个表中有多行,并在所选行中获取多行数组

sql 怎么查询不重复数据

SQL查询语句,怎样查询重复数据

sql查询字段中所有等于某些值的数据

SQL查询从通配符列等于值的所有表中选择所有行[重复]

SQL查询从通配符列等于值的所有表中选择所有行[重复]