指定された列の異なる値を持つ 3 つの最新レコードを選択する方法
特定のテーブルの最新レコードを選択することは、データベースでの一般的な操作。ただし、特定の列の値を確実に区別して重複を排除する必要がある場合は、より複雑になる可能性があります。このタスクでは、より微妙なアプローチが必要です。
指定されたシナリオでは、ユーザーは、otheridentifier 列の値が異なるテーブルから、最新の 3 つのレコードを選択しようとします。 SELECT * FROM table GROUP BY (otheridentifier) ORDER BY time DESC LIMIT 3 を使用する最初の試行は、SQL ステートメントでの順序付けよりもグループ化の方が優先されるため、望ましい結果を生成できません。
この制限を克服するには、より複雑なクエリが必要です:
SELECT * FROM `table` WHERE `id` = ( SELECT `id` FROM `table` AS `alt` WHERE `alt`.`otheridentifier` = `table`.`otheridentifier` ORDER BY `time` DESC LIMIT 1 ) ORDER BY `time` DESC LIMIT 3
このクエリは次の実行によって機能します。手順:
このアプローチを使用すると、ユーザーは otheridentifier 列に個別の値を持つ最新の 3 つのレコードを効果的に選択し、望ましい結果を得ることができます。
以上が特定の列に一意の値を持つ最新の 3 つのレコードを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。