ホームページ > データベース > mysql チュートリアル > SQL 結合内の最新の位置データのみを選択するにはどうすればよいですか?

SQL 結合内の最新の位置データのみを選択するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-04 17:47:11
オリジナル
746 人が閲覧しました

How to Select Only the Most Recent Location Data Within a SQL Join?

結合操作内の最大日付の選択

特定のレコードの過去の場所を取得するには、次のクエリを検討してください:

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 サイトの他の関連記事を参照してください。

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