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

CROSS JOIN と INNER JOIN: どの SQL 結合をいつ使用するか?

DDD
DDDオリジナル
2025-01-22 10:21:10363ブラウズ

CROSS JOIN vs. INNER JOIN: When to Use Which SQL Join?

SQL の CROSS JOIN と INNER JOIN

CROSS JOIN について

CROSS JOIN はデカルト積としても知られ、2 つ以上のテーブルから行の可能な組み合わせをすべて取得します。特定の基準に基づいて行をフィルタリングするのではなく、各テーブルの行数を乗算するだけです。たとえば、あるテーブルに 5 行があり、別のテーブルに 3 行がある場合、CROSS JOIN は 15 行の結果セットを返します。

例:

次の形式を考えてみましょう:

<code>Customers:
CustomerID | Age | Gender
--------- | --- | -------
C0        | 25   | Male
C1        | 30   | Female

Movies:
MovieID   | MovieName
-------   | ---------
M0        | Batman
M1        | Superman</code>

Customers テーブルと Movies テーブル間の CROSS JOIN により、次の結果セットが生成されます:

CustomerID Age Gender MovieID MovieName
C0 25 Male M0 Batman
C0 25 Male M1 Superman
C1 30 Female M0 Batman
C1 30 Female M1 Superman

INNER JOIN を理解する

INNER JOIN は等価結合とも呼ばれ、指定された等価条件に基づいて 2 つのテーブルの行をフィルター処理します。結合された列に同じ値を持つ行と一致します。たとえば、CustomerID 列に基づく Customers テーブルと Movies テーブルの INNER JOIN は、両方のテーブルで CustomerID が一致する行のみを返します。

例:

前と同じテーブルを考慮すると、CustomerID に基づく INNER JOIN は次の結果セットを生成します:

CustomerID Age Gender MovieID MovieName
C0 25 Male M0 Batman

CROSS JOIN と INNER JOIN を選択します

CROSS JOIN と INNER JOIN のどちらを選択するかは、目的の結果によって異なります。

  • フィルター条件に関係なく、複数のテーブルから行の可能なすべての組み合わせを取得する場合は、CROSS JOIN を使用します。
  • 特定の等価条件に基づいて行をフィルタリングし、両方のテーブルから一致する行のみを取得する場合は、INNER JOIN を使用します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。