ホームページ > データベース > mysql チュートリアル > JOIN ステートメントを使用して MySQL で最新の位置データを効率的にクエリする方法

JOIN ステートメントを使用して MySQL で最新の位置データを効率的にクエリする方法

Susan Sarandon
リリース: 2024-12-04 08:27:12
オリジナル
962 人が閲覧しました

How to Efficiently Query for the Most Recent Location Data in MySQL Using JOIN Statements?

MySQL の Join ステートメント内の最大日付のクエリ

MySQL 内のレコードの履歴位置を取得するには、JOIN ステートメントを利用できます。 。ただし、パフォーマンスの問題や結果の重複データが発生した場合は、アプローチを変更する必要があります。

変更されたクエリ

各レコード ID の最新の変更時刻のみを取得するにはと場所については、次のクエリを検討してください:

SELECT t1.received_id
     , t1.transaction_id
     , t1.date_modified
     , l.location
  FROM transactions t1
  JOIN ( SELECT received_id, MAX(date_modified) maxmodify FROM transactions GROUP BY received_id) max_record
    ON max_record.received_id = t1.received_id 
   AND max_record.maxmodify = t1.date_modified
  JOIN locations l
    ON l.location_id = t1.location_id
  JOIN received r
    ON r.received_id = t1.received_id
 WHERE t1.received_id = '1782'
 ORDER 
    BY t1.date_modified DESC
ログイン後にコピー

Key変更

変更はサブクエリ内にあります:

SELECT received_id, MAX(date_modified) maxmodify FROM transactions GROUP BY received_id
ログイン後にコピー

このサブクエリは、各受信 ID の最大日付を取得します。

最大値で結合

メイン クエリは、2 つのクエリを使用してこのサブクエリに結合します。条件:

  1. max_record.received_id = t1.received_id: レコード ID が一致することを確認します。
  2. max_record.maxmodify = t1.date_modified: 最大の日付を持つトランザクションのみを選択します。

最大の日付に参加すると、重複した結果が排除されます最新の位置変更のみをキャプチャします。

以上がJOIN ステートメントを使用して MySQL で最新の位置データを効率的にクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート