可能重复:
使用连接从表中删除重复行
我的表看起来像这样:
a
, b
, c
, d
,date
如何删除所有具有相同a
,b
的行c
和d
除了最新的行date
吗?有一些行,有相同的和a
不同的。b
c
d
可能重复:
使用连接从表中删除重复行
我的表看起来像这样:
a
, b
, c
, d
,date
如何删除所有具有相同a
,b
的行c
和d
除了最新的行date
吗?有一些行,有相同的和a
不同的。b
c
d
试试这个:
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 演示
您可以像这样对同一张表使用左连接
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;
有关更多信息,请参阅DELETE
MySQL 的语法