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

SQL テーブル内の指定された ID の最新の行を取得するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-29 08:35:11884ブラウズ

How to Retrieve the Most Recent Row for a Given ID in a SQL Table?

指定された ID の最新行の識別:

提供されたテーブルには、さまざまな ID 値に対してさまざまなサインイン タイムスタンプを持つ複数の行が含まれています。ここでの目的は、サインイン列に基づいて、特定の ID 値 (id=1) の最新の行を取得することです。

MAX() Aggregate と GROUP BY の使用:

これを実現する 1 つのアプローチは、GROUP BY 句とともに MAX() 集計関数を使用することです。次のクエリは、一意の ID ごとに最大サインイン タイムスタンプを集計します。

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

このクエリは、id と most_recent_signin の 2 つの列を持つテーブルを生成します。 most_recent_signin 列には、各 ID の最新のサインイン タイムスタンプが含まれます。

完全なレコードの取得:

ただし、目的が完全なレコード (すべての ID を含む) を取得することである場合は、列) >

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;

を含む最新の行の場合、このクエリは TBL テーブル間の INNER JOIN を実行します。および各 ID の最大サインイン タイムスタンプを選択するサブクエリ (ミリ秒)。次に、結果をフィルタリングして、> を含む行のみを含めます。

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

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