1

私は2つのテーブルを持っています:

A:
id    code
1      A1
2      A1
3      B1
4      B1
5      C1
6      C1

=====================

B:
id    Aid
1      1
2      4

( へのリンクBは含まれていません)Aidcode C1

全体的な流れを説明しましょう: の
各行にtable A異なるコードを持たせたい (重複を削除することにより)、 でAid見つけたものを保持しtable Bたい. だから私は以下のように何かをすることはできません:Aidtable B

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
4

3 に答える 3