ホームページ >データベース >mysql チュートリアル >SQL で最新の 3 つの異なるレコードを選択するにはどうすればよいですか?
SQL を使用したまったく最近のレコードの選択
このクエリのタスクは、テーブルから最新の 3 つのレコードを抽出することです。特定の列 otheridentifier の値は異なります。次の SQL ステートメントが試行されました:
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 値ごとに最新のレコードを識別するネストされた select ステートメントで構成されます。次に結果はフィルタリングされ、最新の 3 つのレコードのみが取得されるようになります。
以上がSQL で最新の 3 つの異なるレコードを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。