ホームページ >データベース >mysql チュートリアル >テーブル内の特定の ID の最新の行を取得するにはどうすればよいですか? または データベーステーブルから指定された 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 サイトの他の関連記事を参照してください。