2

私は次のようなテーブルを持っています

productId retailerId
1 2
1 2
1 4
1 6
1 8
1 8
2 3
2 6
2 6

ここで、重複を削除する必要があります。1 つのフィールドが同じ場合に重複を削除する方法を理解しました。しかし、両方のフィールドが同一である 、 、1 2など1 8の重複を削除する必要があります。2 6

どんな助けでも非常に感謝しています。

4

1 に答える 1

2

mysql の複数テーブルDELETE構文を次のように使用します。

delete mytable
from mytable
join mytable t
on t.productId = mytable.productId
and t.retailerId = mytable.retailerId
and t.id < mytable.id

SQLFiddleで実行されているこれを参照してください。

id 列もあると仮定していることに注意してください。

編集:

列がないためid、最も簡単な方法は、次のように、目的のデータを一時テーブルにコピーし、すべてのデータを削除してからコピーして戻すことです。

CREATE TEMPORARY TABLE temptable
SELECT DISTINCT productId, retailerId
FROM mytable;
DELEYE FROM mytable;
INSERT INTO mytable
SELECT *
FROM temptable;
于 2013-03-31T17:16:04.293 に答える