ホームページ >データベース >mysql チュートリアル >テーブル内の特定の ID の最新の行を取得するにはどうすればよいですか? または データベーステーブルから指定された ID を持つ最新の行のみを選択するにはどうすればよいですか?

テーブル内の特定の ID の最新の行を取得するにはどうすればよいですか? または データベーステーブルから指定された ID を持つ最新の行のみを選択するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-29 05:28:10554ブラウズ

How to Retrieve the Most Recent Row for a Specific ID in a Table?
或
How Can I Select Only the Latest Row with a Given ID from a Database Table?

特定の ID を持つ最新の行を取得する

同じ ID (1) を持つが、サインイン タイムスタンプが異なる 3 つの行を含むテーブルを考えます。目的は、その中の最新の行のみを取得することです。

1 つのアプローチには、集計関数とグループ化の使用が含まれます。 MAX() 関数を利用して各 ID の最大サインイン タイムスタンプを見つけると、最新の行を効果的に識別できます。結果を ID 列でグループ化し、一意の ID ごとに最大のサインイン タイムスタンプを取得します。

SELECT 
 id, 
 MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id

対応するレコード全体を取得するには、元のテーブルと最大のサインインを返すサブクエリの間で INNER JOIN を実行します。各IDのタイムスタンプ。 ID 列で 2 つのテーブルをリンクし、最大サインイン タイムスタンプに基づいてフィルターします。これにより、指定された ID の最新の行が得られます。

たとえば、ID=1 の最新の行を取得するには:

SELECT 
  tbl.id,
  signin,
  signout
FROM tbl
  INNER JOIN (
    SELECT id, MAX(signin) AS maxsign FROM tbl GROUP BY id
  ) ms ON tbl.id = ms.id AND signin = maxsign
WHERE tbl.id=1

以上がテーブル内の特定の ID の最新の行を取得するにはどうすればよいですか? または データベーステーブルから指定された ID を持つ最新の行のみを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。