ホームページ > データベース > mysql チュートリアル > SQL は 2 つのテーブル間の重複する時間間隔を効率的に特定するにはどうすればよいでしょうか?

SQL は 2 つのテーブル間の重複する時間間隔を効率的に特定するにはどうすればよいでしょうか?

Mary-Kate Olsen
リリース: 2024-12-31 04:20:09
オリジナル
258 人が閲覧しました

How Can SQL Efficiently Identify Overlapping Time Intervals Between Two Tables?

SQL での時間間隔の重複を効率的に特定する

問題:

開始時刻列と終了時刻列を持つ 2 つのテーブルがあるとします。タスクは、最初のテーブルの各行と時間間隔で重複する 2 番目のテーブルの行を識別することです。この条件では、終了時刻が null の 2 番目のテーブルの行も考慮されます。

解決策:

SQL Server 2005 構文を使用すると、次の WHERE 句で効果的にこれに対処できます。問題:

SELECT * 
FROM table1,table2 
WHERE table2.start <= table1.end 
AND (table2.end IS NULL OR table2.end >= table1.start)
ログイン後にコピー

説明:

  • 句 table2.start <= table1.end は、重複する可能性のある間隔の開始時刻を保証します。 table2 は、table1 の現在の間隔の終了時間内にあります。
  • 2 番目の条件、table2.end IS NULL OR table2.end >= table1.start、table2 の null 終了時刻を処理します。終了時間が null の場合、間隔は無期限に延長されると見なされ、table1 の後続の間隔と重複する可能性があります。あるいは、終了時間が有効な値で、それが table1 の現在の間隔の開始時間以上である場合、重複が検出されます。

以上がSQL は 2 つのテーブル間の重複する時間間隔を効率的に特定するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート