【问题标题】:Delete duplicates records between two tables删除两个表之间的重复记录
【发布时间】:2014-04-29 11:36:54
【问题描述】:

我有两个不同的表,分别是用户表和客户端表。有很多重复记录。我试图删除那些重复记录并保存到一个新表中但失败了。它删除行而不是记录。是否有任何查询可以从两个表中删除这些重复记录?

例如有这样的行:

|汽车 |房子|食物 |

|汽车 |循环 |鞋 |

|巴士 |水|房子|

汽车和房子是重复记录。我想删除它们并使用 GROUP BY 将其他记录留在新表中。

【问题讨论】:

  • “它删除行而不是记录”:行和记录是一回事。你能澄清一下你的意思吗?
  • 例如有这样的行:|汽车 |房子|食品| |汽车 |循环 |鞋| |巴士 |水|房子|车和房子是重复记录。我想删除它们并使用 GROUP BY 将其他记录留在新表中
  • 为什么每行有三个记录?你能改变那个模式吗?因为如果您每行有一条记录,这将使事情变得很多更容易。
  • 好的。谢谢你的建议。但我不知道如何将多列分组为单列。对不起。我对这个 SQL 真的很陌生,这是我第一次使用它。
  • 如果您提供数据的实际示例可能会有所帮助。您当前列出的内容看起来就像您有三个表,每个表有一行和三列,并且您说具有相同值的任何两列都是重复的。但通常在 SQL 中,我们只会说某些东西是重复的键或整行。

标签: sql duplicates records


【解决方案1】:

首先,您必须在您的案例中定义什么是重复记录,它是具有相似主键的记录还是具有所有列相同的记录。假设您的记录有主键:

delete from users where id in (select id from client);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    • 2014-04-04
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多