0

私が作成している Web パネル用のこのテーブルがあります。

ここに画像の説明を入力

特定のページでは、各サーバーの最新のアーカイブが表示されます。つまり、個別のサーバー ID を調べて、示されているように降順のタイム スタンプで並べ替える必要があります。

ここに画像の説明を入力

現時点では実行する必要がありますSELECT DISTINCT server_id FROM archives ORDER BY time DESCが、これはforeachPHP で使用して追加のクエリを実行し、アーカイブの残りのフィールドを取得する必要があることを意味します ( id, job_id, time, sha1_sum, file_name, size)。

server_id降順でソートされたそれぞれの最新のアーカイブを取得できる単一の SQL ステートメントはありますtimeか? すべてを 1 つのクエリで実行すると、コードがはるかに簡単でクリーンになります。

編集:すぐ下のアーカイブがより新しい場合、2013 年 6 月 15 日の結果が上部に表示されるため、Web テーブルの結果のリストが間違っていることに注意してください。

4

2 に答える 2

1

GROUP BYMAXを組み合わせて使用​​できます。

SELECT server_id,MAX(time), id, job_id, time, sha1_sum, file_name, size FROM archives GROUP BY server_id
于 2013-06-17T05:35:51.353 に答える