SQLにおけるCROSS JOINとINNER JOINの違いをデータテーブルで解説

この記事では、SQL(Structured Query Language)の「CROSS JOIN」と「INNER JOIN」という二つの異なる結合処理に焦点を当て、それらの違いについて詳しく解説します。具体的なデータテーブルを用いた例を交えながら、それぞれの結合処理がどのような結果を生むのかを明らかにします。

目次

CROSS JOINとは

CROSS JOINは、二つのテーブルのすべての行を結合するSQLの処理方法です。もしテーブルAがn行、テーブルBがm行だった場合、CROSS JOINの結果はn×m行になります。

具体的なデータテーブル例

IDNameAge
1Tom28
2Bob22
テーブルA
IDSubjectScore
1Math80
2History70
テーブルB

CROSS JOINのSQLコード例

SELECT A.*, B.*
FROM TableA A
CROSS JOIN TableB B;

INNER JOINとは

INNER JOINは、二つのテーブルを特定の条件に基づいて結合するSQLの処理方法です。この条件は「ON」キーワードで指定されます。

具体的なデータテーブル例

IDNameAge
1Tom28
2Bob22
テーブルA
IDNameSubjectScore
1TomMath80
2BobHistory70
テーブルB

INNER JOINのSQLコード例

SELECT A.*, B.*
FROM TableA A
INNER JOIN TableB B
ON A.ID = B.ID;

CROSS JOINとINNER JOINの違い

CROSS JOINとINNER JOINの主な違いは、「条件の有無」です。CROSS JOINは条件を指定せずに全ての行を結合しますが、INNER JOINは特定の条件にマッチした行だけを結合します。

比較表

結合種別条件指定結果の行数
CROSS JOINなしn×m
INNER JOINあり(ONキーワード)条件にマッチした行数
CROSS JOINとINNER JOINの比較

まとめ

この記事でCROSS JOINとINNER JOINの違いについて理解できたでしょうか。CROSS JOINは条件無しで全行を結合、INNER JOINは条件にマッチする行のみを結合します。それぞれの用途と性質を理解し、適切な場面で使い分けることが重要です。

コメント

コメントする

目次