【SQL】JOINの結合条件にBETWEENを使用する

SQL
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

JOINの結合条件にBETWEENを使用するはじめに

SQLのBETWEENは、指定した範囲内にある値を検索するための条件演算子です。
ひとつに合致する値を検索するイコールと異なり、範囲内にある値すべてを検索対象とすることができます。

あるテーブルの log_date の前後14日に入る 別テーブルの log_date のデータを取得したいケースがありました。そちらの実例をもとに解説できればと思います。

BETWEENの基本構文と使用例

BETWEEN基本構文

SELECT 列名 FROM テーブル名 WHERE 列名 BETWEEN 値1 AND 値2

BETWEEN演算子は、指定した列の値が値1以上かつ値2以下の範囲に含まれる行を検索します。検索結果には、指定した列の値が含まれます。

BETWEEN使用例

たとえば、salesというテーブルにamountという列があり、特定の金額範囲内の売上データを検索する場合を考えてみましょう。

SELECT * FROM sales WHERE amount BETWEEN 1000 AND 5000

このクエリでは、salesテーブルからamount列が1000以上かつ5000以下の行が返されます。

BETWEEN演算子は、数値だけでなく、日付や文字列などのデータ型でも使用することができます。ただし、データ型によっては予期しない結果が生じる場合があるため、適切なデータ型を使用するか、適切な形式でデータを比較する必要があります。

また、BETWEEN演算子では、範囲の両端の値が含まれることに注意してください。もし両端の値を含めずに範囲検索を行いたい場合は、>(より大きい)や<(より小さい)演算子を使用して範囲を指定する必要があります。

JOINの結合条件にBETWEENを使用する

JOINの結合条件にBETWEENを使用する具体例

例として、2つのテーブル ordersproducts があり、orders テーブルの order_date カラムが products テーブルの start_dateend_date カラムの範囲内にある場合にJOINする場合を考えます。

SELECT *
FROM orders
JOIN products ON orders.order_date BETWEEN products.start_date AND products.end_date

このクエリでは、orders テーブルと products テーブルを order_date カラムが start_date から end_date の範囲内にある場合にJOINします。

JOIN BETWEENで前後14日を取得する例

次に、2つのテーブル t1t2 があり、t1 テーブルの log_date カラムが t2 テーブルの log_date の 前後14日の範囲内にあるデータを取得したい場合を考えます。

SELECT *
FROM t1
JOIN t2 ON t1.log_date BETWEEN date_format( date_add( t2.log_date, -14), 'yyyy-MM-dd' ) and date_format( date_add( t2.log_date, 14), 'yyyy-MM-dd' )

date_format( date_add( t2.log_date, -14), ‘yyyy-MM-dd’ ) 部分でt2テーブル log_date の前14日、date_format( date_add( t2.log_date, 14), ‘yyyy-MM-dd’ ) 部分でt2テーブル log_date の後ろ14日を取得しています。

これにより、上記範囲にある t1テーブルの log_date のデータが返されます。

 

プログラムの環境構築からわからない、、」「データサイエンティストになるには?」など自己学習に不安がありましたら、以下のスクールのご活用をご検討ください!

スタアカTech AcademyCode Lesson
データサイエンティストを目指すことに特化したスクールです。現役エンジニアから学べるオンラインに特化したプログラミングスクールです。転職の支援はもちろん、副業に活かせるスキルの習得から、副業の仕事紹介まで寄り添います。「未経験から独学でプロを目指す」というコンセプトのもと、実践的なコーディング学習ができるプログラミング学習サービスです。
★コース例
・データサイエンティスト概要コース
・Python基礎コース
・データ加工集計可視化コース
・統計学概要コース
・SQL基礎コース
 など
コース例
・Pythonコース

・AIコース
・データサイエンスコース
★提供スキル
HTML, CSS, JavaScript(DOM), React, Vue, TypeScript, Java, PHP, Python, SQL

JOINの結合条件にBETWEENを使用するまとめ

以上が、JOINとBETWEENを組み合わせて範囲内に入るデータを取得する際の実例となります。

似たケースの際にテーブル名や指定期間を修正してご活用いただければと思います!

SQL参考本

SQL学び始めの時はこちらの本を参考にしていました。

DBやテーブルの構造から、よく使う関数などがまとめられています。基礎を身につけたい方におススメかと思います。

SQL文法関連記事

そのほか、SQL関連記事をこちらにまとめておりますのでご参考ください。
Coffee Tech Blog SQL関連記事

もしIT業界への転職でお困りでしたら、下記サービスのご活用をご検討ください!
私は転職の際にGeeklyを活用させて頂き、ご縁を頂くことができました。

Geekly転職ドラフト
IT・WEB・ソーシャルゲーム業界を専門とした転職支援サービスです。ギークリー独占の求人案件も扱っており、大手サービスに劣らないサービス力を誇ります。転職ドラフトは年収UP率94.3% / 平均年収UP額148.4万円と圧倒的な年収UP率を誇るイベント型のエンジニア向け転職サービスです。毎月1回開催され、IT/Web系企業を中心に、厳選された約240社からダイレクトスカウトを受け取ることができます。

参考になれば幸いです☕

コメント

タイトルとURLをコピーしました