Zenn
🎉

[SQL]共通の値を持たないテーブルを左外部結合/内部結合した結果について(備忘録)

2025/03/13に公開

1.はじめに

配属先プロジェクトで使用されている Ab Initio というデータ処理プラットフォーム上の処理を確認している時、共通値を持たない2つのデータを左外部結合しているプログラムを見つけました。
SQL で共通値を持たない2つのテーブルを左外部結合/内部結合した場合、どういう結果が返ってくるのか疑問に感じ記載しました。

2.サンプルプログラム

〇例1:内部結合

Sample_1.sql
CREATE TABLE Student (
    id INT,
    name VARCHAR(50)
);

CREATE TABLE Result (
    student_id INT,
    score INT
);

-- データ登録
INSERT INTO Student (
    id,
    name
)
VALUES
(1, '山田'), (2, '大谷');

INSERT INTO Result (
    student_id,
    score
)
VALUES
(3, 80), (4, 90);

-- 内部結合
SELECT *
FROM Student
INNER JOIN Result
    ON Student.id = Result.student_id;
実行結果
Execution complete with exit code 0

〇例2:左外部結合

Sample_2.sql
CREATE TABLE Student (
    id INT,
    name VARCHAR(50)
);

CREATE TABLE Result (
    student_id INT,
    score INT
);

-- データ登録
INSERT INTO Student (
    id,
    name
)
VALUES
(1, '山田'), (2, '大谷');

INSERT INTO Result (
    student_id,
    score
)
VALUES
(3, 80), (4, 90);

-- 左外部結合
SELECT *
FROM Student
LEFT OUTER JOIN Result
    ON Student.id = Result.student_id
;

実行結果

id name student_id score
1 山田 NULL NULL
2 大谷 NULL NULL

3.その他

実行環境

Discussion

ログインするとコメントできます