#はじめに
エンジニア1年生です。
日々の学びのメモとしてコツコツと記事を書こうと思っています。
今回はSQLのJOINについて書いていきます。
##JOINとは??
テーブルを操作する際に複数のテーブルを結合して検索を行いたい場面が多々あるかと思います。
そんな時に複数のテーブルを結合する命令が「JOIN」です。
##内部結合と外部結合
###今回使用するテーブル
##内部結合とは?
内部結合は2つのテーブルを結合する際に一致したデータのみを取り出します。
####文法
SELECT * FROM [テーブル名1] INNER JOIN [テーブル名2] ON [結合条件]
####実行SQL
SELECT * FROM animal INNER JOIN name ON animal.id = name.animal_id
####結果
結合条件に一致しないデータ(animalテーブルのid:5)がないことが分かります。
結合する際に一致したデータのみを取り出す。
これが「内部結合」です。
##外部結合とは?
軸になるテーブルを指定して軸になるテーブルにデータがあれば
結合されるテーブルと一致しなくてもデータを取り出します。
軸になるテーブルデータ全件取得して結合条件に一致したテーブルデータを結合するイメージです。
####文法
SELECT * FROM [テーブル名1] LEFT OUTER JOIN [テーブル名2] ON [結合条件]
SELECT * FROM [テーブル名1] RIGHT OUTER JOIN [テーブル名2] ON [結合条件]
####実行SQL
SELECT * FROM animal LEFT OUTER JOIN name ON animal.id = name.animal_id
####結果
内部結合の時と異なり一致しないデータも取り出されていることが分かります。
軸になるテーブルデータ全件+結合条件に一致したテーブルデータを結合
する。
これが「外部結合」です。
「LEFT」「RIGHT」これでどちらのテーブルを軸にするかを指定しています。
LEFT:左側に指定されたテーブルが軸になります。
RIGHT:右側に指定されたテーブルが軸になります。
以上です。