当前位置: 首页 > 面试题库 >

删除另一个表中不存在ID的所有行

权浩邈
2023-03-14
问题内容

我想删除另一个表示例中没有现有外键的所有行:

table1
+----+-------+
|id  | data  |
+----+-------+
| 1  | hi    |
+----+-------+
| 2  | hi    |
+----+-------+
| 3  | hi    |
+----+-------+
| 4  | hi    |
+----+-------+
| 5  | hi    |
+----+-------+

table2
+----+-------+
|a_id| data  |
+----+-------+
| 1  | hi    |
+----+-------+
| 20 | hi    |
+----+-------+
| 3  | hi    |
+----+-------+
| 40 | hi    |
+----+-------+
| 5  | hi    |
+----+-------+

查询 将删除表2上ID为20和40的行。

我需要这样做,以便可以与table1和table2建立关系。


问题答案:
DELETE table2 
FROM   table2 
       LEFT JOIN table1 
              ON table2.a_id = table1.id 
WHERE  table1.id IS NULL


 类似资料:
  • 问题内容: 我试图从两个文件中读取并将它们存储在两个单独的arraylist中。文件由单词组成,这些单词要么单独一行,要么多个单词之间用逗号分隔。我用以下代码读取每个文件(不完整): 我现在需要读入两个文件,并从第一个文件中删除所有单词,该单词也存在于第二个文件中(文件中有一些重复的单词)。我已经尝试过for- loops和其他类似的东西,但是没有任何效果,因此将不胜感激! 额外的问题:我还需要找

  • 我有一个表值,有8000万条记录。另一个表评估了拥有2.5亿条记录的_历史。 我想过滤values_history表,并希望保留在值表中预设id的唯一数据。 这个查询需要很长时间,我不得不中止这个过程。 请提出一些想法来加速这个过程。 我可以一次删除100万条这样的记录吗?

  • 问题内容: 我正在尝试删除mysql表中的孤立条目。 我有2张桌子,像这样: 表: 表: 该和列可以被用来连接表在一起。 我想删除表中所有在表中找不到的行。 因此,使用上面的示例将删除表中的行:3&4(s)。 问题答案: 使用LEFT JOIN / IS NULL: 使用不存在: 使用NOT IN: 警告 只要有可能,就在事务中执行DELETE(假设受支持-IE:不在MyISAM上),以便在出现问

  • 我正在从远程数据库读取一组行,从本地数据库读取一组类似的行,然后使用RemoveAll删除本地已经存在的远程行。。。 但这对我来说似乎不对。当我真正需要做的只是检查是否存在匹配项时,我认为我不应该计算事物。我尝试了和的各种用法,但得到了废话。我不能使用(如这里建议的),因为列表元素不是同一类型。 有更好的方法吗?

  • 问题内容: 假设我有两个列表,l1和l2。我要执行l1 - l2,返回l1not中的所有元素l2。 我可以想到一个幼稚的循环方法来执行此操作,但这实际上效率很低。什么是Python高效的方法? 例如,如果我有,应返回 问题答案: Python具有称为List Comprehensions的语言功能,非常适合使这种事情变得非常容易。以下语句完全满足你的要求,并将结果存储在l3: l3将包含。

  • 问题内容: table1 (id, name) table2 (id, name) 询问: 问题答案: SELECT t1.name FROM table1 t1 LEFT JOIN table2 t2 ON t2.name = t1.name WHERE t2.name IS NULL 问 :这是怎么回事? 答 :从概念上讲,我们从中选择所有行,并为每一行尝试在其中找到具有相同值的行。如果没有这