ホームページ > データベース > mysql チュートリアル > CROSS JOIN と INNER JOIN: それぞれをいつ使用する必要がありますか?

CROSS JOIN と INNER JOIN: それぞれをいつ使用する必要がありますか?

Susan Sarandon
リリース: 2025-01-22 10:11:10
オリジナル
424 人が閲覧しました

CROSS JOIN vs. INNER JOIN: When Should You Use Each?

SQL の CROSS JOIN と INNER JOIN: 違いの詳細な説明

SQL の JOIN 操作は、特定の条件に基づいて複数のテーブルの行を結合するために使用されます。 CROSS JOIN と INNER JOIN は 2 つの一般的な JOIN タイプで、それぞれに独自の用途とアプリケーション シナリオがあります。

クロスジョイン

名前が示すように、CROSS JOIN は、参加しているテーブル内の行のデカルト積を作成します。つまり、条件に関係なく、両方のテーブルの行の可能なすべての組み合わせが返されます。この動作により、特にテーブルに多数の行がある場合、多数の冗長行が発生する可能性があります。

次の CROSS JOIN の例を考えてみましょう:

<code class="language-sql">SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status], 
FROM   
    Customers 
CROSS JOIN 
    Movies</code>
ログイン後にコピー

このクエリは、Customers テーブルと Movies テーブルの間に関係があるかどうかに関係なく、Customers テーブルと Movies テーブルの行の可能なすべての組み合わせを返します。

内部結合

INNER JOIN は、ON 句で定義された結合条件を満たす行のみを返します。この条件は、参加テーブル内の行が結果に含まれるために満たす必要がある条件を指定します。

次の INNER JOIN の例を考えてみましょう:

<code class="language-sql">SELECT 
    Movies.CustomerID, Movies.Movie, Customers.Age, 
    Customers.Gender, Customers.[Education Level], 
    Customers.[Internet Connection], Customers.[Marital Status]
FROM   
    Customers 
INNER JOIN 
    Movies ON Customers.CustomerID = Movies.CustomerID</code>
ログイン後にコピー

このクエリは、Customers テーブルと Movies テーブル内の CustomerID 値が一致する行のみを返します。これにより、映画をレンタルした顧客のみが結果に含まれるようになります。

CROSS JOIN と INNER JOIN をどちらに使用するか

CROSS JOIN または INNER JOIN のどちらを使用するかは、クエリの特定の要件によって異なります。

  • CROSS JOIN を使用します: 条件に関係なく、複数のテーブルから行の可能なすべての組み合わせを返したい場合。このメソッドは通常、テスト データを生成したり、デカルト積を作成したりするために使用されます。
  • INNER JOIN を使用します: 特定の結合条件を満たす複数のテーブルから行のみを返したい場合。このメソッドを使用すると、関連するデータを検索し、無関係な行を除外することができます。

CROSS JOIN と INNER JOIN の違いを理解することで、SQL の複数のテーブルのデータを効果的に組み合わせてニーズを満たすことができます。

以上がCROSS JOIN と INNER JOIN: それぞれをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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