【问题标题】:Delete duplicate rows with different user IDs in SQL?在 SQL 中删除具有不同用户 ID 的重复行?
【发布时间】:2020-11-06 22:03:58
【问题描述】:

我最近向this 提出了一个问题,即如果重复行都在一个用户 ID 下,我该如何删除所有重复行。现在我想知道如果具有重复值的行具有不同的用户 ID,我应该如何删除一个重复行?

例如,如果我有:

+--------+----+---------+
| UserID | ID | Version |
+--------+----+---------+
|      1 | AB |       1 |
|      2 | AB |       1 |
|      1 | BA |       1 |
|      2 | BA |       1 |
+--------+----+---------+

IDVersion 中的值相同(分别用于 AB 和 BA 行),我只想删除 UserID 为 1 的行(删除第一行和第三行)。我该怎么做呢?提前致谢!

【问题讨论】:

    标签: sql database sqlite sql-delete


    【解决方案1】:
    当存在具有相同 ID 和相同版本的行存在,但用户 ID 更高时,

    删除表中的一行。

    delete from tablename t1
    where exists (select 1 from tablename t2
                  where t1.ID = t2.ID and t1.Version = t2.Version
                    and t1.UserID < t2.UserID)
    

    【讨论】:

    • 是否可以使查询更具体,以 ID 为 1 的用户为目标(如果存在一个用户 ID 更高的用户)?
    猜你喜欢
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2019-06-30
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    相关资源
    最近更新 更多