鍍金池/ 問答/Linux  數(shù)據(jù)庫/ mysql中關(guān)于批量修復(fù)數(shù)據(jù)的sql語句,求助

mysql中關(guān)于批量修復(fù)數(shù)據(jù)的sql語句,求助

之前歷史遺留的問題,要做下修復(fù),問題如下

在members表中,是用戶數(shù)據(jù)記錄
例:
uid username

100 test01
101 test02
102 test03

在members_setmeal中,是用戶等級記錄
例:
id uid setmeal_id

1 100 1
2 101 1
3 102 1

應(yīng)該是一一對應(yīng)的,也就是members中有一個(gè)uid,相應(yīng)的members_setmeal中就應(yīng)該有對應(yīng)的一條uid等級

因?yàn)闅v史遺留問題,有大部分用戶在members中有記錄,但是在members_setmeal中沒有記錄,所以要做個(gè)修復(fù)工作
大概1W多條,查出members中在members_setmeal中如果不存在則對應(yīng)uid添加一條數(shù)據(jù)進(jìn)去,并將setmea_id設(shè)為1

請教一下,最簡單的修復(fù)sql語句~

回答
編輯回答
有點(diǎn)壞
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;
2018年8月22日 18:57