1

重複の可能性:
結合を使用してテーブルから重複行を削除する

私のテーブルは次のよう
aになります: いくつかの行があり、同じで、同じではありません。bcddate
abcddateabcd

4

2 に答える 2

2

これを試して:

DELETE FROM tableName 
WHERE (a, b, c, d, dte) NOT IN (SELECT a, b, c, d, dte 
                                FROM (SELECT a, b, c, d, MAX(dte) dte 
                                     FROM tableName GROUP BY a, b, c, d
                                ) AS A );

このSQL FIDDLE DEMOをチェックしてください

于 2013-01-10T09:53:22.993 に答える
0

このように同じテーブルで左結合を使用できます

DELETE table1
  FROM table1
  LEFT JOIN 
  ( SELECT MAX(`date`) as dates,a,b,c,d FROM table1
    GROUP BY a,b,c,d
  ) A
    ON table1.date = A.dates
   AND table1.a = A.a
   AND table1.b = A.b
   AND table1.c = A.c
   AND table1.d = A.d
 WHERE A.dates IS NULL;

このSQLFiddleを参照してください

詳細についてDELETEは、MySQLの構文を参照してください。

于 2013-01-10T10:09:37.063 に答える