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を混在させる際の落とし穴の詳細な説明

推薦する

MySql Group Byは複数のフィールドのグループ化を実装します

日常の開発タスクでは、データ テーブル内のグループ化フィールドに基づいて統計データを取得するために、...

vue-seamless-scrollがスクロールしていいねをするときのデータ同期の問題を解決する

VUE は vue-seamless-scroll を使用して、自動的にスクロールしていいねします。...

DockerにElasticsearch7.6クラスタをインストールしてパスワードを設定する方法

目次基本的な設定バージョンとDockerイメージについて始めるelasticsearch.ymlにつ...

フロントエンド開発者のための HTML 入門

1 HTML入門1.1 初めてのコード体験、最初のウェブページの作成XML/HTML コードコンテン...

Docker で Redis センチネル モードを構成する方法 (複数のサーバー上)

目次序文状態DockerをインストールするRedisのマスターノードとスレーブノードを構成する序文以...

docker ベースで Prometheus+Grafana を構築する手順の詳細説明

1. プロメテウスの紹介Prometheus は、もともと SoundCloud によって開発された...

CSS3 で背景の透明化と不透明テキストを実装するサンプルコード

最近、画像上に半透明の背景でテキストを表示する必要があるという要件に遭遇しました。その効果は次のよう...

ウェブページのカラーマッチング例分析: 緑色のカラーマッチングウェブページ分析

<br />緑は黄色と青(寒色と暖色)の中間の色で、より穏やかな色です。そのため、緑は最...

MySQL データベースのバックアップをスケジュールするいくつかの方法 (包括的)

目次1. データをバックアップするためのmysqldumpコマンド2. 一般的なmysqldump操...

MySQLのスレッド実行の急増とクエリの遅延の問題を解決する

目次背景問題の説明原因分析CPUクエリが遅い接続数分析する拡大する総括する背景新年を迎える前は、一年...

Docker-compose を使用して ELK をデプロイするためのサンプル コード

環境ホストIP 192.168.0.9 Docker バージョン 19.03.2 docker-co...

Prometheusコンテナのデプロイメントのための実用的なソリューション

環境ホスト名IPアドレス仕えるプロメテウス192.168.237.137プロメテウス、グラファナノー...

CSS3 アニメーション ボールローリング JS コントロールアニメーション一時停止

CSS3 はアニメーションを作成でき、多くの Web ページのアニメーション画像、Flash アニメ...

JavaScript の document.activeELement フォーカス要素の紹介

目次1. デフォルトの焦点はボディにあります2. テキストボックスのフォーカスを手動で取得する3. ...

JavaScript オブジェクト (詳細)

目次JavaScript オブジェクト1. 定義2. オブジェクトの分類3. オブジェクトを定義する...