はじめに
このブログは授業で受けた内容のまとめや感想などを記述しています
今回はSQLの結合について少しまとめてみました。
まずテーブルの結合とは
他のテーブル同士をまとめることです。
例えば、AテーブルとBを作り、AテーブルとBテーブルを別々に調べてから検索結果を合わせていると、時間がかかってしかたがないです。
なので、AテーブルとBテーブルをまとめてから検索すると、時間の短縮もでき、何よりも見やすいです。
結合にもいろいろなものがあるので今回はそちらのほうをブログに書こうと思います。
inner join(内部結合)
inner joinはそれぞれのテーブルの指定したカラムの値が一致するものだけを結合するものです。
inner joinの構文は
select * from テーブル名
inner join 結合したいテーブル名
on テーブル名.フィールド名=結合したいテーブル名.フィールド名;
になります。
left outer join(左外部結合)
left outer joinは外部結合の一つで、左側のテーブルを軸として外部結合を行います。
内部結合とは違い、外部結合は、それぞれのテーブルに指定したカラムの値が一致するものを結合するのに加えどちらかのテーブルにしか存在しないものに関しても取得します。
基本構文は
SELECT * FROM テーブル名
LEFT(RIGHT) OUTER JOIN 結合したいテーブル名 ON 結合条件
になります。
Cross Join(クロス結合)
cross joinは各テーブルに存在する行同士の全ての組み合わせを得ることができます
基本構文は
SELECT * FROM テーブル名 CROSS JOIN 結合したいテーブル名;
になります。
natural join(自然結合)
natural joinは内部結合や外部結合の後ろにNATURALキーワードを指定することで、カラム名を指定しなくても、二つのテーブルで同じ名前のカラム名を使って結合を行います。
基本構文は
内部結合の場合
SELECT * FROM テーブル名1 NATURAL INNER JOIN テーブル名2;
仕様変更に対応するとき大変になるので
NATURALは使用せず、JOINで全て結合条件を書くことをお勧めします。
外部結合の場合
SELECT * FROM テーブル名1 NATURAL LEFT OUTER JOIN テーブル名2;
になります。