ホームページ >データベース >mysql チュートリアル >SQL データベース内の各ユーザーの最新のレコードを取得するにはどうすればよいですか?
各ユーザーの最新のユーザー レコードを取得します
ユーザーのチェックイン時間とチェックアウト時間 (「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 サイトの他の関連記事を参照してください。