ホームページ >データベース >mysql チュートリアル >CROSS JOIN と INNER JOIN: どの SQL 結合をいつ使用するか?
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: どの SQL 結合をいつ使用するか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。