6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JOINについて

Posted at

#はじめに
エンジニア1年生です。
日々の学びのメモとしてコツコツと記事を書こうと思っています。
今回はSQLのJOINについて書いていきます。

##JOINとは??
テーブルを操作する際に複数のテーブルを結合して検索を行いたい場面が多々あるかと思います。
そんな時に複数のテーブルを結合する命令が「JOIN」です。

##内部結合と外部結合
###今回使用するテーブル

animalテーブル.png

##内部結合とは?
内部結合は2つのテーブルを結合する際に一致したデータのみを取り出します。

####文法
SELECT * FROM [テーブル名1] INNER JOIN [テーブル名2] ON [結合条件]

####実行SQL

SELECT * FROM animal INNER JOIN name ON animal.id = name.animal_id

####結果

内部結合.png

結合条件に一致しないデータ(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

####結果

外部結合.png

内部結合の時と異なり一致しないデータも取り出されていることが分かります。
軸になるテーブルデータ全件+結合条件に一致したテーブルデータを結合する。
これが「外部結合」です。

「LEFT」「RIGHT」これでどちらのテーブルを軸にするかを指定しています。
LEFT:左側に指定されたテーブルが軸になります。
RIGHT:右側に指定されたテーブルが軸になります。

以上です。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?