mysql中关于批量修复数据的sql语句,求助

之前历史遗留的问题,要做下修复,问题如下

在members表中,是用户数据记录
例:
uid username

100 test01
101 test02
102 test03

在members_setmeal中,是用户等级记录
例:
id uid setmeal_id

1 100 1
2 101 1
3 102 1

应该是一一对应的,也就是members中有一个uid,相应的members_setmeal中就应该有对应的一条uid等级

因为历史遗留问题,有大部分用户在members中有记录,但是在members_setmeal中没有记录,所以要做个修复工作
大概1W多条,查出members中在members_setmeal中如果不存在则对应uid添加一条数据进去,并将setmea_id设为1

请教一下,最简单的修复sql语句~

阅读 1.8k
1 个回答
INSERT INTO members_setmeal(uid, setmealid)
SELECT t.uid, 1
FROM 
(SELECT m.uid
FROM members m
WHERE NOT EXISTS(SELECT 1 FROM members_setmeal ms WHERE ms.uid = m.uid)) t;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题