ID に基づいて最新の行を取得
ID ごとに複数の行を含むデータベース テーブルで、タスクは最も古い行のみを取得することです。指定された ID の最近の行。以下の表を考えてみましょう:
+----+---------------------+---------+ | id | signin | signout | +----+---------------------+---------+ | 1 | 2011-12-12 09:27:24 | NULL | | 1 | 2011-12-13 09:27:31 | NULL | | 1 | 2011-12-14 09:27:34 | NULL | | 2 | 2011-12-14 09:28:21 | NULL | +----+---------------------+---------+
「signin」列に基づいて ID = 1 の最新の行を取得するには、MAX() 関数を使用して「signin」列を集計し、ID でグループ化します。
SELECT id, MAX(signin) AS most_recent_signin FROM tbl GROUP BY id
このクエリは、各 ID の最新の「サインイン」タイムスタンプを返します。
に関連付けられた完全な行を抽出するには最新の「サインイン」、各 ID の MAX(「サインイン」) を返すサブクエリに対して INNER JOIN を実行します:
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 = 1 の最新の「サインイン」を持つ行。
以上がデータベーステーブル内の特定のIDの最新の行を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。