当前位置: 首页 > 知识库问答 >
问题:

是否可以在同一SQL语句中从多个表中删除?

吕修筠
2023-03-14
DELETE J
FROM Users U
inner join LinkingTable J on U.id = J.U_id
inner join Groups G on J.G_id = G.id

WHERE G.Name = 'Whatever'
and U.Name not in ('Exclude list')
DELETE J, U
FROM Users U
inner join LinkingTable J on U.id = J.U_id
...

共有1个答案

龙默
2023-03-14

不,您需要运行多个语句。

因为您需要从两个表中删除,所以考虑创建一个匹配ID的临时表:

SELECT U.Id INTO #RecordsToDelete
FROM Users U
   JOIN LinkingTable J ON U.Id = J.U_Id
...

然后从每个表中删除:

DELETE FROM Users 
WHERE Id IN (SELECT Id FROM #RecordsToDelete)

DELETE FROM LinkingTable
WHERE Id IN (SELECT Id FROM #RecordsToDelete)
 类似资料:
  • 我已经在Google Sheets中创建了一个员工培训数据库。一名工作人员将出现在几张纸上。 我想在主表中员工姓名栏旁边添加一列,并在该列中添加“是/否”下拉列表,以便该员工离开公司时,激活“是”下拉,并将与该工作人员相关的所有行剪切并粘贴到具有重复标题的页中,删除原始数据放置的空白单元格。 这有可能吗?有人能帮我解决公式或代码吗? 以下是数据库副本的链接: 数据库 下拉列表位于“管理人员”表的K

  • 问题内容: 在python中,我知道如何从列表中删除项目。 上面的代码从item_list中删除了值5和’item’。但是当有很多东西要删除时,我必须写很多行 如果我知道要删除的内容的索引,请使用: 其中x是我要删除的项目的索引。 如果我知道要删除的所有数字的索引,则将对索引项进行某种循环。 但是,如果我不知道要删除的项目的索引怎么办? 我试过了,但出现一个错误,说只需要一个参数。 有没有一种方法

  • 问题内容: 我有一张调查答案表,类似: 并且我想创建一个查询,该查询将为我提供该表的结果摘要,从而允许我设置相关的日期范围。我下面的声明非常有效: 但是我不确定是否可以做得更好,以及在哪里添加日期范围过滤功能。 问题答案: 来自多刺的诺曼的第一个查询将给出这样的结果: 仅将几组不同的结果分组。我假设您想按问题将是/否的总数分类。在这种情况下,您必须执行以下操作: 结果:

  • 本文向大家介绍是否可以从区块链的网络中删除一个或多个块?相关面试题,主要包含被问及是否可以从区块链的网络中删除一个或多个块?时的应答技巧和注意事项,需要的朋友参考一下 对的,这是可能的。有时,只需要考虑此在线分类账的特定部分。通过使用默认过滤器和选项,我们可以删除这些块。

  • 问题内容: 上面的语句返回3行。但是下面的语句仅返回2行。 我知道为什么会这样,但是有一种方法可以强制item_id 1返回两次? 我要退货的示例: id-> 1筹码€2.50 id-> 1筹码€2.50 id-> 2可口可乐€1.60 -------------------- 总计€6.60 问题答案: 您可以加入另一个表,例如 或者只是在您的应用程序中复制它们。 您实际上不需要做您所要的。

  • 问题内容: 我需要一个允许部分匹配的case语句。我收到语法错误,但想知道是否有可能这样做。如果没有,我的第二个解决方案是将其重写为游标…示例: 问题答案: 试试这个 你可以运行的例子