首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MySQL表中查找重复行

问在MySQL表中查找重复行
EN

Stack Overflow用户
提问于 2018-05-17 13:08:41
回答 1查看 19关注 0票数 0

我有一个表,在该表中,我将项链接到每个类型都可以有多个类别的类型。对于类型和类别的每个组合,只应该链接一个项。然而,经过我过去的一些错误,一些副本已经溜走了。我现在正在尝试写一个查询,这将给我副本,但我没有做一个很好的工作,否则我不会在这里张贴明显。

代码语言:javascript
复制
SELECT
    item_id,
    type_id,
    category
FROM itemTypes
WHERE category = 'cat1'
GROUP BY type_id
HAVING COUNT(*) >= 2;

这就是我试过的。它确实工作,并给我的type_ids是链接到不同的项目。但是每个type_id只应该链接到一个项目。这个列表没有显示链接的项目。这正是我想知道的。

有人能帮我吗?

更新

下面是一个数据示例。如您所见,type_id 5和6被多次链接。因此,我想得到的只是这些记录。

代码语言:javascript
复制
| id    | item_id   | type_id   |   cat     |
+-------+-----------+-----------+-----------+
| 1     | 100       | 5         | cat1      |
| 2     | 110       | 5         | cat1      |
| 3     | 115       | 6         | cat1      |
| 4     | 120       | 7         | cat1      |
| 5     | 125       | 5         | cat1      |
| 6     | 130       | 6         | cat1      |
| 7     | 135       | 4         | cat1      |
| 8     | 140       | 8         | cat1      |
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-17 13:11:38

您需要将您的itemTypes表加入到您当前拥有的查询中,将其重新定义为子查询:

代码语言:javascript
复制
SELECT t1.*
FROM itemTypes t1
INNER JOIN
(
    SELECT item_id
    FROM itemTypes
    WHERE category = 'cat1'
    GROUP BY item_id
    HAVING COUNT(*) > 1
) t2
    ON t1.item_id = t2.item_id;

当前查询的逻辑问题是,它只能找到符合标准的item_id值,而不能找到其他列值。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50392290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档