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

使用mysql将丢失的记录从一个表插入到另一个表

郜俊健
2023-03-14
问题内容

我不知道为什么我对此查询感到困惑。

我有两个表:Table A带有900记录和Table B带有800记录。两个表都需要包含相同的数据,但是存在一些不匹配的情况。

我需要编写一个mysql查询以插入100Table A到的丢失记录Table B

最后,两者Table ATable B应该相同。

我不想先截断所有条目,然后再从另一个表中插入。因此,请提供任何帮助。

谢谢你。


问题答案:

也可以使用LEFT OUTER JOIN它。这将避免像John Woo的回答那样避免子查询的开销(当系统可能为外部查询的 每条
记录执行一次子查询时),并且避免进行不必要的工作来覆盖已经存在的800条记录,例如在user2340435的记录中:

INSERT INTO b
SELECT a.* FROM a
LEFT OUTER JOIN b ON b.id = a.id
WHERE b.id IS NULL;

这将首先选择AB表中的所有行,包括两个表中的所有列,但是对于tableA中的B所有列中存在和不存在的行,B它将为NULL。然后,它仅过滤后面的这些行(WHERE b.id IS NULL),最后将所有这些行插入到B表中。



 类似资料:
  • 问题内容: 我想通过将记录从一张桌子移到另一张桌子来对学生进行归档。这是我尝试使用的代码: 我遇到的问题是我遇到错误: 致命错误:XX行/archive-student.php中的内存不足(已分配80478208)(试图分配80216043字节) 除了有一个名为archive的列并从0更改为1之外,是否有其他方法可以执行此操作?这是因为我有30-50页选择表的记录。:) 问题答案: 就那么简单。

  • 问题内容: 我想从一个表中读取所有数据,然后将一些数据插入到另一个表中。我的查询是 但我有一个错误 请帮我。 问题答案: 您可以使用INSERT … SELECT语法。请注意,您可以在SELECT部分​​中直接引用“ 1”。

  • 问题内容: 我有2个不同的表,但各列的命名略有不同。我想从一个表中获取信息,然后将其放入另一个表中。仅当表1中的“信息字段”不为null时,才需要将表1中的信息放入表2中。表2在创建任何东西时都有一个唯一的ID,因此插入的任何东西都需要获得下一个可用的ID号。 表格1 表2 问题答案: 这应该工作。您无需担心Table2中的identify字段。

  • 我试图在从一个表创建一个值后将其插入另一个表我有两个数据库“mem”和“location” 我想从mem表中添加主键id,并将其插入到位置表中的user_id列中。 我有一个sql查询在我的注册表单页面,自动递增'id'在mem表中,但似乎没有添加相同的值到位置表中的user_id, 有人能帮忙吗!

  • 问题内容: 我有这段代码可以从“ jobseeker”表中选择所有字段,并可以通过将userType设置为“ admin”来更新“ user”表,其中userID =$ userID(此userID是我用户中的一个用户数据库)。然后,该语句应将这些值从“ jobseeker”表插入到“ admin”表中,然后从“ jobseeker表”中删除该用户。sql表很好,我的语句正在将userType更改

  • 我试图通过将不需要的记录移动到墓地表中,在数据库中进行一些垃圾收集。如果我有这四张桌子- 版本(id为主键) Version_history(version_id是外键) Version_graveyard(此处已丢弃版本行) Version_history_graveyard(此处为废弃版本历史记录行) 它包括以下步骤- 获取要删除的所有版本ID 通知所有人要删除的版本ID。(所以我需要在实际移