前回はテーブルを結合するときの種類についてまとめました。
今回は、SQLで具体的にどのように書くかをまとめていきたいと思います。
環境
DB:PostgreSQL
テーブル
以下学生テーブルと学部マスタテーブルを学部IDで結合します。
内部結合
まずは内部結合です。SQLでは”INNER JOIN”句で結合するテーブルを指定します。
SELECT s.studentnumber, s.studentname, s.facultyid, f.facultyname
FROM student s
INNER JOIN facultymaster f
ON s.facultyid = f.facultyid
ON句以降で結合条件を指定します。今回はそれぞれの学部IDで結合しています。
この時の結果は以下の通りです。
また、SQLのJOINはデフォルトで内部結合になります。なので、INNER JOINとせず単にJOINとしても同様の結果(内部結合)が得られます。
SELECT s.studentnumber, s.studentname, s.facultyid, f.facultyname
FROM student s
JOIN facultymaster f
ON s.facultyid = f.facultyid
外部結合
左外部結合
左外部結合にはLEFT JOIN句を用います。FROM句でメインとなるテーブルを、LEFT JOIN句で結合するテーブルを指定します。
SELECT s.studentnumber, s.studentname, s.facultyid, f.facultyname
FROM student s
LEFT JOIN facultymaster f
ON s.facultyid = f.facultyid
右外部結合
右外部結合にはRIGHT JOIN句を用います。用法は左外部結合と同じです。
SELECT s.studentnumber, s.studentname, s.facultyid, f.facultyname
FROM student s
RIGHT JOIN facultymaster f
ON s.facultyid = f.facultyid
学部ID(facltyID)も空白になっていますが、これは学生テーブル(student)を参照しているためです。
完全外部結合
完全外部結合にはFULL OUTER JOIN句を用います。
SELECT s.studentnumber, s.studentname, s.facultyid, f.facultyname
FROM student s
FULL OUTER JOIN facultymaster f
ON s.facultyid = f.facultyid
DBについてより学ぶ
データベース、SQLについて、書籍を通してより深く知ることができます。ネットでも情報は手に入りますが、書籍も是非検討してみてください^^
リンク
リンク
まとめ
SQLでテーブルを結合する方法をまとめました。
参照テーブル、結合条件は一緒でも、結合方法の違いで得られる結果も異なります。注意して使い分けるようにしてください。
ではでは👋