結合操作内の最大日付の選択
特定のレコードの過去の場所を取得するには、次のクエリを検討してください:
SELECT l.location, t.transaction_id, t.date_modified FROM transactions AS t INNER JOIN ( SELECT received_id, MAX(date_modified) AS maxmodify FROM transactions GROUP BY received_id ) AS max_record ON ( t1.received_id = max_record.received_id ) INNER JOIN locations AS l ON ( l.location_id = t.location_id ) INNER JOIN received AS r ON ( r.received_id = t.received_id ) WHERE t.received_id = '1782' ORDER BY t.date_modified DESC;
このクエリは、特定のレコードの場所のリストを返しますが、同じ場所と日付の複数のエントリが含まれています。各場所の最終変更日のみが表示されるようにするには、次のクエリを使用します。
SELECT t1.received_id, t1.transaction_id, t1.date_modified, l.location FROM transactions t1 JOIN ( SELECT received_id, MAX(date_modified) AS maxmodify FROM transactions GROUP BY received_id ) AS max_record ON ( max_record.received_id = t1.received_id AND max_record.maxmodify = t1.date_modified ) JOIN locations AS l ON ( l.location_id = t1.location_id ) JOIN received AS r ON ( r.received_id = t1.received_id ) WHERE t1.received_id = '1782' ORDER BY t1.date_modified DESC;
重要な変更は、選択された date_modified 値が各レコードの最大値であることを保証する結合条件の追加です。 。これにより、最後に更新された位置情報のみが表示されます。
以上がSQL 結合内の最新の位置データのみを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。