ホームページ >データベース >mysql チュートリアル >テーブル内の各一意の ID の最小 Record_Date を持つ行を選択するにはどうすればよいですか?
一意の ID ごとに最も古いレコード日を持つ行を取得する
重複した id
値を含むテーブルを操作し、一意の record_date
ごとに最も古い id
を持つ行のみを選択する必要がある場合は、注意が必要な場合があります。 record_date
値が一意でない場合、標準的なメソッドは困難になることがよくあります。このソリューションは、次のようなシナリオを効率的に処理します。
次の SQL クエリは、目的の行を効果的に選択します。
<code class="language-sql">SELECT mt.* FROM MyTable mt INNER JOIN ( SELECT id, MIN(record_date) AS MinDate FROM MyTable GROUP BY id ) t ON mt.id = t.id AND mt.record_date = t.MinDate;</code>
このクエリはサブクエリを使用して、最初に各 record_date
の最小 id
を決定します。サブクエリは、行を id
でグループ化し、MIN()
関数を使用して各グループ内の最小の record_date
を見つけます。
次に、外側のクエリは、MyTable
と id
の両方を使用して、サブクエリの結果を元のテーブル (record_date
) に結合します。これにより、各 record_date
の最小 id
に一致する行のみが最終的な結果セットに含まれるようになります。 これにより、重複が効果的に削除され、一意の各 record_date
について最も古い id
を持つ行のみが返されます。
以上がテーブル内の各一意の ID の最小 Record_Date を持つ行を選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。