标签: sql-delete

MySQL删除所有子查询结果

好的,所以如果你想要一个背景故事,请看看我之前的问题

弄清楚哪些记录不重复很容易:

SELECT *
FROM eventlog
GROUP BY event_date, user
HAVING COUNT(*) = 1
ORDER BY event_date, user
Run Code Online (Sandbox Code Playgroud)

这将返回我的所有非重复项.所以我想我会把它们移到另一个名为"no_duplicates"的表中,然后从原始表中删除它们.然后我可以在原始表中单独看到重复项,修复它们,然后添加no_dupes.但同时:

INSERT INTO no_duplicates
SELECT *
FROM eventlog
GROUP BY event_date, user
HAVING COUNT(*) = 1
ORDER BY event_date, user
Run Code Online (Sandbox Code Playgroud)

像魅力一样工作,以下引发错误:

DELETE
FROM eventlog
GROUP BY event_date, user
HAVING COUNT(*) = 1
ORDER BY event_date, user
Run Code Online (Sandbox Code Playgroud)

我的猜测是,当查询返回唯一的,已经在表中的记录时,通过聚合函数删除不是犹太教.这是可以理解的,除了我不知道我还能做些什么来确保只删除我移动的记录.我搜索并发现没有"在INSERT中删除原始表中的记录后"语法,我的猜测是它无论如何都会失败,因为删除失败的原因相同.

那么,有人可以帮我找到丢失的一块吗?

mysql insert duplicates sql-delete

4
推荐指数
1
解决办法
2万
查看次数

MySQL从多个表中删除行

这是正确的方法吗?

DELETE t1, t2, t3, t4 FROM 
  table1 as t1 
  INNER JOIN  table2 as t2 on t1.id = t2.id
  INNER JOIN  table3 as t3 on t1.id=t3.id
  INNER JOIN  table4 as t4 on t1.id=t4.id
  WHERE  t1.username='%s' AND t1.id='%s'
Run Code Online (Sandbox Code Playgroud)

mysql sql delete-row sql-delete

4
推荐指数
2
解决办法
2万
查看次数

在几个条件下删除所有重复的主题

我正在尝试使sql删除所有重复的标题但是必须删除具有以下条件的重复项:

  • 必须只删除具有相同object_id的重复项
  • 必须只保留最新的记录(最大的topic_id)(topic_id是每个主题AI的唯一ID)

到目前为止我已经完成了(用select测试...)

SELECT topic_id,object_id,title,url,date 
FROM topics GROUP BY title 
HAVING ( COUNT(title) > 1) 
ORDER BY topic_id DESC
Run Code Online (Sandbox Code Playgroud)

但不符合条件.
我正在使用mysql.

mysql sql duplicates sql-delete

4
推荐指数
1
解决办法
353
查看次数

从表中删除孤儿

我正在尝试清理一个有很多孤儿的桌子.

我正在接近这个,通过查找空值来检查是否与另一个表有关系.

   DELETE FROM table1 
LEFT JOIN table2 ON table1.ID = table2.ID
    WHERE table2.ID IS NULL
Run Code Online (Sandbox Code Playgroud)

我收到左外连接无效的错误.

我正在寻找其他方法的建议,我可以从这个破碎的关系中删除这些孤儿

sql t-sql sql-server sql-delete

4
推荐指数
2
解决办法
9225
查看次数

如何删除今天创建的所有记录?

我正在处理一个非常大的数据库~6百万条记录.我今天添加了约30,000个不良记录.如何删除今天在MySQL中创建的所有记录?

mysql delete-record sql-delete

4
推荐指数
1
解决办法
5950
查看次数

使用单个查询选择和删除

我有2张桌子:

  • 用户(user_id,user_connected)
  • rooms(room_id,room_initiating_user_id,room_target_user_id)

我想删除启动用户和target_user都设置为"user_connected = 0"的所有"房间"

我有两个问题:

  1. 如何定位这些用户?显然这个查询不起作用:

    SELECT room_id
    FROM rooms,users
    WHERE
    ( 
     (room_target_user_id=user_id) AND (user_connected=0)
    )                   
    AND
    (                
     (room_initiating_user_id=user_id) AND (user_connected=0)
    )
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我希望,如果可能,使用相同的查询删除这些房间(如果我使用第二个查询没问题,但这意味着将为每个结果触发此查询,这是很多.是不是可以删除这些房间一次?

mysql optimization select sql-delete

4
推荐指数
1
解决办法
2万
查看次数

DELETE语句与REFERENCE冲突

我有一个table_Project,其中包含CustomerID(链接到tbl_Customer).在tbl_Customer中,我有Customer_ID(作为密钥)和其他一些信息,如电话,电子邮件等.

要从Gridview中删除它,我使用此DeleteCommand:

DeleteCommand="DELETE FROM [tbl_Customer] WHERE [Customer_ID] = @Customer_ID" 
Run Code Online (Sandbox Code Playgroud)

但它给了我以下错误:

The DELETE statement conflicted with the REFERENCE constraint "Klant_Relatie". The conflict occurred in database "Database_1", table "dbo.tbl_Project", column 'CustomerID'. The statement has been terminated.

但是通过更新CustomerInfo,我没有收到任何错误.我已经看到了C#的不同解决方案,但我使用.net

有任何想法吗?

sql sql-server asp.net sql-delete

4
推荐指数
1
解决办法
5870
查看次数

Deleting value using SQlite while doing an INNER JOIN

I am trying to delete all voters from a voters table where they are not registered as a democrat or republican AND only voted once. I have a database with three tables, congress_members, voters, and votes and have to JOIN votes with voters in order to delete the right data.

This code finds the data I want to delete:

SELECT voters.*
FROM voters JOIN votes ON voters.id = votes.voter_id
WHERE party = 'green' OR party = 'na' OR party = …
Run Code Online (Sandbox Code Playgroud)

sql sqlite join sql-delete

4
推荐指数
2
解决办法
4327
查看次数

使用Entity Framework删除大项目列表

我想用EF删除一个大的项目列表,所以我试图逐个删除它们,但这需要很长时间.

我尝试使用.RemoveAll()我的列表中的方法,但它不更新数据库[仅从已加载的实体中删除]

所以我使用a SqlCommand从数据库中删除它们,我.RemoveAll()用来防止EF unexpected number of rows update (0)异常.

码:

dbContext.Database.ExecuteSqlCommand("DELETE FROM xxx WHERE xxx");
loadedEntity.subItems.ToList().RemoveAll(r => true);
dbContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

我的问题:有更好的方法吗?

c# entity-framework sql-delete

4
推荐指数
1
解决办法
7219
查看次数

使用oracle比较连续的行

我有一个看起来像这样的表:

| ID | FROM_DATE | TO_DATE |
------------------------------
| 1  |  1/1/2001 | 2/1/2001|
| 1  |  2/1/2001 | 3/1/2001|
| 1  |  2/1/2001 | 6/1/2001|
| 1  |  3/1/2001 | 4/1/2001|
| 2  |  1/1/2001 | 2/1/2001|
| 2  |  1/1/2001 | 6/1/2001|
| 2  |  2/1/2001 | 3/1/2001|
| 2  |  3/1/2001 | 4/1/2001|
Run Code Online (Sandbox Code Playgroud)

它已经被排序ID,From_Date,To_date.

我想要做的是删除from_dateto_date前一行更早的行,ID等于上一行的ID.所以在这个例子中,我只会删除第3行和第6行.

我知道我需要某种循环结构才能实现这一目标,但我不知道为什么我一直在这里看两行.我怎样才能在Oracle中实现这一目标?

编辑:使用'LAG'功能更快更容易,我最终也删除了第4行和第7行 - …

sql oracle loops date sql-delete

4
推荐指数
1
解决办法
938
查看次数