Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否删除SQL中具有不同用户ID的重复行?_Sql_Database_Sqlite_Sql Delete - Fatal编程技术网

是否删除SQL中具有不同用户ID的重复行?

是否删除SQL中具有不同用户ID的重复行?,sql,database,sqlite,sql-delete,Sql,Database,Sqlite,Sql Delete,我最近问了一个问题,如果重复的行都在一个用户ID下,如何删除所有重复的行。现在我想知道如果具有重复值的行具有不同的用户ID,我应该如何删除一个重复的行 例如,如果我有: +--------+----+---------+ | UserID | ID | Version | +--------+----+---------+ | 1 | AB | 1 | | 2 | AB | 1 | | 1 | BA | 1 | | 2

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

例如,如果我有:

+--------+----+---------+
| UserID | ID | Version |
+--------+----+---------+
|      1 | AB |       1 |
|      2 | AB |       1 |
|      1 | BA |       1 |
|      2 | BA |       1 |
+--------+----+---------+
ID和Version中的值对于AB和BA行分别是相同的,我只想删除UserID为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和相同版本但具有更高用户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更高的用户,是否可以使查询更具体,以ID为1的用户为目标?如果存在一个ID更高的用户,是否可以使查询更具体,以ID为1的用户为目标?