0

さまざまな販売者から製品データをインポートしようとしています。データは、次のフィールドを持つインポート テーブルにインポートされます。この項目は更新されました

したがって、売り手 A は製品 ID 22 を持つことができますが、これは製品 ID 55 を持つ売り手 B と同じ製品です。

売り手 A が製品 A の価格を変更すると、インポートに行が表示されます。現在、多くの「歴史的な」行があり、最新のインポートを取得することにのみ関心があります

例えば:

1  A   22     2012 01 22
2  A   22     2012 05 10
44 A   22     2012 11 10

最初の 2 行を次のようにアーカイブしたいと思います。

insert into archive ....
values ( select * from import where id in(
 select id from import 
 where `lastupdate` < max(`lastupdate`)
 group by sellerid, sellerproductid
)

古いレコードの ID を取得するための適切な mysql ステートメントを見つけるのに苦労しています。

4

1 に答える 1

2

これにより、最新のエントリを除くすべてが表示されます。

SELECT distinct t1.* 
FROM import t1 inner join import t2 
on t1.sellerid = t2.sellerid and t1.sellerproductid = t2.sellerproductid 
where t1.lastupdate < t2.lastupdate;
于 2012-12-10T06:54:28.713 に答える