複数の条件での SQL 結合

Fu Shuno Tiao Jiandeno Sql Jie He



リレーショナル データベースの最も一般的な機能の 1 つは結合です。 SQL 結合とは、標準機能または列に基づいて 2 つ以上のテーブルのデータを 1 つの結果セットに結合するプロセスを指します。

テーブルを結合すると、複数のテーブルに保存されているデータを 1 つのクエリで取得できるため、データ分析とレポート作成のための強力なツールになります。







このチュートリアルでは、複数の条件で SQL 結合を実行する方法を学びます。 「AND」および「OR」論理演算子を使用して、複数の条件に基づいてデータを結合する方法を学習します。



複数の条件での SQL 結合

SQL では AND または OR 演算子を使用して複数の条件を指定できます。これらの演算子を使用すると、ブール式のセットを定義して、それらの式を評価し、結果のセットと比較できます。



AND 演算子を使用して、指定されたすべての条件が true であることを確認します。条件の 1 つでも true でない場合、式全体が false になります。このため、AND 演算子は、極端なデータ フィルタリングにとって優れたツールになります。





一方、少なくとも 1 つの条件が true である必要がある場合は、OR 演算子を使用します。これにより、結果として得られるレコードは少なくとも 1 つの定義されたパラメータのみを満たす必要があるため、より「緩やかな」データ フィルタリング方法になります。

AND 演算子と OR 演算子の機能は、SQL 結合の場合でも変わりません。



SQL の複数結合の例

複数の条件で結合を操作する方法を理解するには、例を使用するのが最善です。

このデモンストレーションでは、SQL の全機能を探索するために開発されたSakila データベースを使用します。

film テーブルと film_actor テーブルからデータをフェッチするとします。まず、映画に出演し、PG または PG-13 と評価され、身長が 90 ~ 120 の俳優をすべて検索します。

このようなシナリオでは、次のように複数の条件で結合を実行する必要があります。

SELECT 俳優の名前、俳優の姓、映画のタイトル、映画のリリース年、映画の評価
俳優から
JOIN film_actor ON actress.actor_id = film_actor.actor_id
フィルムに結合 film_actor.film_id = film.film_id
フィルムの長さの間の場所 90 120
AND 映画.評価 IN ( 「PG」 「PG-13」 ) ;


前のクエリからわかるように、actor_id 列に基づいて、actor テーブルと film_actor テーブルの間の結合を実行するように SQL に指示しています。また、film_id 列を使用して、film_actor テーブルと film テーブルの間の結合も実行します。また、WHERE 句を使用して 2 つの条件を定義し、公開年と映画の長さに基づいて結果テーブルをフィルター処理します。

結果のテーブルは次のとおりです。


次のクエリ例に示すように、OR 演算子に基づいて複数の条件を指定することもできます。

film.title、film.rental_rate、category.name を選択します。
フィルムから
JOIN film_category ON film.film_id = film_category.film_id
カテゴリに結合 ON film_category.category_id = category.category_id
WHERE カテゴリ.名 IN ( 'アクション' 「コメディ」 )
AND film.rental_rate > 3.00 ;


結果のテーブルは次のとおりです。

結論

このチュートリアルでは、AND 演算子と OR 演算子を使用して、複数の条件に基づいて SQL 結合を操作する方法を説明しました。これにより、より詳細なデータ フィルタリングが可能になります。