ホームページ >データベース >mysql チュートリアル >SQL データベース内の各ユーザーの最新のレコードを取得するにはどうすればよいですか?

SQL データベース内の各ユーザーの最新のレコードを取得するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-13 13:01:45862ブラウズ

How to Retrieve the Most Recent Record for Each User in a SQL Database?

各ユーザーの最新のユーザー レコードを取得します

ユーザーのチェックイン時間とチェックアウト時間 (「lms_attendance」) を含むテーブルがあるとします。ユーザーのアクティビティを把握するには、各ユーザーの最新のアクティビティ (チェックインまたはチェックアウト) を表示するビューが必要になる場合があります。

SQL でこれを実現するには、次のクエリを使用できます:

<code class="language-sql">SELECT t1.*
FROM lms_attendance t1
WHERE t1.time = (SELECT MAX(t2.time)
                 FROM lms_attendance t2
                 WHERE t2.user = t1.user);</code>

このクエリはサブクエリを使用して各ユーザーの最大時間を決定し、最新のアクティビティが確実にキャプチャされるようにします。結果は予想される出力と同様になります:

<code>| ID | USER |       TIME |  IO |
--------------------------------
|  2 |    9 | 1370931664 | out |
|  3 |    6 | 1370932128 | out |
|  5 |   12 | 1370933037 |  in |</code>

ただし、ユーザーごとに 1 つのレコードのみが必要な場合は、クエリを次のように変更します。

<code class="language-sql">SELECT t1.*
FROM lms_attendance t1
WHERE t1.id = (SELECT t2.id
                 FROM lms_attendance t2
                 WHERE t2.user = t1.user            
                 ORDER BY t2.id DESC
                 LIMIT 1);</code>

以上がSQL データベース内の各ユーザーの最新のレコードを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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