我有两张桌子:
A:
id code
1 A1
2 A1
3 B1
4 B1
5 C1
6 C1
======================
B:
id Aid
1 1
2 4
(B
不包含Aid
指向哪个链接code C1
)
让我解释一下整体流程:
我想让每一行table A
都有不同的代码(通过删除重复),我想保留Aid
我可以找到的table B
。如果Aid
没有保存table B
,我保留更大的 id。
所以我不能只做如下的事情:
DELETE FROM A
WHERE id NOT IN (SELECT MAX(id)
FROM A
GROUP BY code,
)
我可以通过下面的 sql 语句获取每个 duplicate_code_groups:
SELECT code
FROM A
GROUP BY code
HAVING COUNT(*) > 1
sql中是否有一些代码,例如
for (var ids in duplicate_code_groups){
for (var id in ids) {
if (id in B){
return id
}
}
return max(ids)
}
并将返回 id 放入idtable
?? 我只是不知道如何在sql中编写这样的代码。
那我可以
DELETE FROM A
WHERE id NOT IN idtable