1

共通の列が 2 つ以上あるテーブルから行を削除する必要があります。例のために。最後の 2 列が同じ行を削除する必要があるとしましょう。

1 1 2 3

2 2 2 2

3 2 3 3

4 7 3 3

5 4 2 2

最初の列はインデックスです。

4 7 3 3 と 5 4 2 2 を削除する必要があります (既に 2 2 2 2 と 3 2 3 3 があるため)

4

2 に答える 2

1
DELETE FROM tableName
WHERE col1 NOT IN
(
    SELECT minID
    FROM 
    (
        SELECT MIN(ID) minID
        FROM tableName
        GROUP BY col2, col3
    ) a
)

SQLFiddle デモを見る

于 2012-10-03T10:54:01.390 に答える
0

いくつかの調査の後、私はこれを見つけました(スタックのどこかにあったと思いますが、投稿を思い出せません)

  SELECT * FROM tb AS t1
  WHERE EXISTS (
    SELECT 1 FROM tb AS t2 
    WHERE t2.c0= t1.c0
    AND t2.c1= t1.c1
    AND t2.c2= t1.c2
    AND t2.id> t1.id )
于 2012-10-03T11:12:57.307 に答える