MySQL の自己結合重複排除に関する注意事項

MySQL の自己結合重複排除に関する注意事項

機能シナリオを簡単に説明しましょう。

データ行フィールドは次のとおりです。

名前
開始日時
タイプ

この表では、名前に重複した値があります

ここで、タイプが決定されたときにリストをフィルタリングして、名前が重複しないようにし、同じ名前で started_at が最小のレコードが見つかるようにする必要があります。

例えば:

イベント 1 2019-06-01 タイプ1
イベント 1 2019-06-02 タイプ1
イベント 1 2019-06-03 タイプ1

イベント 2 2019-06-03 タイプ1
イベント 2 2019-06-05 タイプ1
イベント 2 2019-06-07 タイプ1

ふるいリストは次のようになります。

イベント 1 2019-06-01 タイプ1
イベント 2 2019-06-03 タイプ1

また、started_atが現在の時刻より大きいことも満たす必要があります。

このようなSQLはどのように記述すればよいでしょうか?

解決策は次のとおりです。

左結合自体を使用することです

たとえば、 s1 left join s2 on s1.name=s2.name and s2.started_at<s1.started_at and s2.started_at > now()

最後にwhere s2.id is null

選択
 s1.名前、
 s1.開始日時、
 
から
 表 s1
 LEFT JOIN tbl s2 ON s1.`name` = s2.`name` 
  かつ、s1.started_at > s2.started_at 
  かつ s2.started_at > now() 
どこ
  s2.id が NULL です 
  かつ、s1.started_at > now() 
 かつ s1.type = 'online_lecture'
注文する
 s1.名前、
 s1.開始日時;

もっと良い解決策を持っている人はいますか?

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • MySQL の分析: 単一テーブルを区別し、複数テーブルをグループ化して重複レコードを削除するクエリ
  • フィールド内の重複情報を削除するmysql SELECT文
  • MySQLで重複データを削除する詳細な例
  • 1つのSQL文でMySQLの重複排除が完了し、1つが保持されます。
  • MySQLの重複排除方法
  • MySQL 開発スキル: JOIN 更新とデータ重複チェック/重複排除
  • Mysql 重複データを削除 Mysql データ重複排除
  • MySQL における重複排除の 2 つの方法とサンプル コードの詳細な説明
  • 重複したMySQLテーブルをマージして削除する簡単な方法
  • MySQLの重複排除操作を極限まで最適化する方法
  • MySQL 最適化のヒント: 重複削除の実装方法の分析 [数百万のデータ]

<<:  Linux の traceroute コマンドの使用方法の詳細な説明

>>:  npmとcnpmを混在させる際の落とし穴の詳細な説明

推薦する

node.jsのコアモジュールとは

目次グローバルオブジェクトグローバルオブジェクトとグローバル変数プロセスコンソール一般的なツールユー...

HTML テーブルタグチュートリアル (35): 列間属性 COLSPAN

複雑なテーブル構造では、一部のセルが垂直方向に複数のセルにまたがるため、列間属性 COLSPAN を...

CSSで制御可能な点線を実装する方法

序文CSS を使用して点線を生成するのは、フロントエンド開発者にとっては簡単です。一般的に、これを実...

Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。

序文Dockerを使ってHadoopクラスタを起動するたびに、ネットワークカードの再バインド、IPの...

MySQL データベースのマスター スレーブ分離のサンプル コード

導入MySQL データベースの読み取りと書き込みの分離を設定すると、データベースに対する書き込み操作...

HTML+SassはHambergurMenu(ハンバーガーメニュー)を実装します

先日、外国人の方がHTML+CSSを使ってHamburgerMenuを実装している動画を見ました。最...

Nginx の負荷分散と動的および静的分離の原理と構成

目次1. Nginxは負荷分散の原則を実装する2. Nginxの動的および静的分離の原則Nginx ...

Nginxドメイン名転送のhttpsアクセスの実装

事前に一言:突然、複数のドメイン名のアクセスを https に転送するというタスクを受け取りました。...

CentOSはローカルyumソース/Alibaba Cloud yumソース/163yuanソースを設定し、yumソースの優先順位を設定します。

1. Centosイメージを使用してローカルのyumソースをビルドするCentOS をインストール...

jsは徐々に増加するデジタルアニメーションを実現します

目次背景コンテナを固定し、数字を上にスクロールすることで、スクロールホイールと同様の効果を実現します...

Tomcatソースコードをideaにインポートする方法

目次1. Tomcatコードをダウンロードする2. ダウンロード後のディレクトリ構造3. ソースコー...

HTML チュートリアル: よく使われる HTML タグのコレクション (4)

関連記事:初心者が学ぶ HTML タグ (3)導入された HTML タグは、必ずしも XHTML 仕...

MySQLの指定されたテーブルからデータをエクスポートする例の詳細な説明

指定されたテーブルからデータをエクスポートするMySQLの詳細な説明必要とする: 1. テーブルはす...

Tinymce リッチテキストを使用して Vue のツールバーボタンをカスタマイズする実践

目次tinymce、tinymce ts、tinymce-vue 宣言ファイルをインストールするパッ...

フロントエンド JavaScript におけるリフレクションとプロキシ

目次1. 反射とは何ですか? 2. JavaScriptで反映する2.1 Reflect.get(タ...