🎉
[SQL]共通の値を持たないテーブルを左外部結合/内部結合した結果について(備忘録)
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