削除作業が困難で、親切な助けが必要です。データベースは、さまざまな都市で販売された取引に関連しています (400.000 を超える行)。私の仕事は、複数の都市で同時に販売された同じ取引を削除することです。ただし、同じ取引が異なる時間に都市に複数回表示される場合があります。同じ取引には同じタイトルがあります (少なくとも最初の 12 個の特性)。
簡略化されたデータ サンプルは次のとおりです。
id; city_id; starting_date; title;
1; A; 30.01.2013; chain hotel A coupon
2; B; 30.01.2013; chain hotel A coupon
3; C; 30.01.2013; chain hotel A coupon
4; A; 01.03.2013; chain hotel A coupon
5; A; 06.05.2013; restaurant A coupon
6; A; 30.05.2013; restaurant A coupon
複数の都市で同時に販売された取引をすべて削除したいのですが、別の時間に都市で販売された取引はそのままにしておきます。以下は私のコードです:
DELETE FROM `table`
WHERE `id` in
(SELECT t2.`id` from
(
SELECT `id`
FROM `table`
GROUP BY LEFT(title, 35)
HAVING COUNT(*)>1
AND COUNT(DISTINCT `city_id`)>1)
as t2)
このコードの問題は、このコードを実行した後、重複した行の 1 行だけが移動されることです。より良い解決策はありますか?