ホームページ > データベース > mysql チュートリアル > SQL における CROSS JOIN と INNER JOIN: 各結合タイプをいつ使用するか?

SQL における CROSS JOIN と INNER JOIN: 各結合タイプをいつ使用するか?

Mary-Kate Olsen
リリース: 2025-01-22 10:16:09
オリジナル
605 人が閲覧しました

CROSS JOIN vs. INNER JOIN in SQL: When to Use Each Join Type?

SQL のクロス結合 (CROSS JOIN) と内部結合 (INNER JOIN): 包括的な比較

SQL には、CROSS JOIN と INNER JOIN という 2 つの異なる接続タイプが用意されており、各接続タイプには独自のアプリケーション シナリオがあります。この記事では、これら 2 種類の接続の違いを詳しく説明し、それぞれの利点と使用例に焦点を当てます。

クロス結合: デカルト積

クロス結合はデカルト積としても知られ、最初のテーブルのすべての行と 2 番目のテーブルのすべての行を結合します。これにより、結合されたテーブルの行の可能なすべての組み合わせを含む新しいテーブルが生成されます。

文法:

<code class="language-sql">SELECT *
FROM Table1 CROSS JOIN Table2</code>
ログイン後にコピー

例:

「Customers」テーブルと「Movies」テーブルの間のクロス結合を考えてみましょう:

<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>
ログイン後にコピー

このクエリは、顧客と映画の考えられるすべての組み合わせを返すため、多数の行が生成されます。

内部結合: 結果を制限する

内部結合は、ON 句で指定された条件を満たす行のみを返します。両方のテーブルで値が一致する行のみが選択されます。

文法:

<code class="language-sql">SELECT *
FROM Table1 INNER JOIN Table2 ON Table1.Column = Table2.Column</code>
ログイン後にコピー

例:

前と同じテーブルを使用して、CustomerID 列を使用して内部結合を作成しましょう:

<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: 2 つのテーブル内の行の可能なすべての組み合わせが必要な場合に使用されます。
  • INNER JOIN: 値が一致する 2 つのテーブルから行のみを取得する必要がある場合に使用されます。

一般に、効率が高く、結果をフィルター処理できるため、内部結合を使用することをお勧めします。一方、クロス結合は、デカルト積が必要な特定のシナリオで役立ちます。

以上がSQL における CROSS JOIN と INNER JOIN: 各結合タイプをいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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