0

我有 2 张桌子。AuthUser

Auth 有 ff。列(来源) 18883 行

id | username | password

用户有ff。列(目标)18868 行

id | username | first name | last name | email

auth.id = user.id
auth.username = user.username

现在由于某种原因,User表中有一些用户名丢失的行。我想要做的是制作一个脚本来查找缺失的行User并插入id和用户名,Auth然后插入first name='fname',last name='lname' ,=' emailname@domain.com'。

因此,两个表将具有相同的行数并且是同步的。

谢谢你。

4

1 回答 1

2

您不清楚缺少什么。. . id 或用户名或两者兼而有之。假设用户名指定缺失,以下查询会执行您想要的操作:

insert into user(id, uesrname, firstname, lsatname, email)
    select a.id, a.username. 'fname', lname', 'name@domain.com'
    from auth a left outer join
         user u
         on a.username = u.username
    where u.id is null

这假设用户表中的用户名不重复。

名为“id”的列在两个表中具有相同的值似乎很奇怪。你应该重新审视你的数据结构,看看是否真的如此。通常,“id”是一个自动递增的主键。

于 2012-07-31T00:21:28.807 回答