diadia

興味があることをやってみる。自分のメモを残しておきます。

SQL 各種JOINについて

JOINの種類

JOINはテーブルの結合を行うもので、JOIN, INNER JOIN, OUTER LEFT JOIN, LEFT JOIN, RIGHT JOIN, OUTER RIGHT JOIN, FULL JOINなどの種類がある。

それでこれらを使い分ける必要があるわけだけれど、使い分けとしてJOIN, LEFT JOIN, RIGHT JOINの3種類で使い分けることができる。

JOINは別名INNER JOINである。LEFT JOINは別名OUTER LEFT JOINであり、RIGHT JOINはOUTER RIGHT JOINである。LEFT JOINとRIGHT JOINはOUTER JOINと呼ばれるタイプのJOINである。これに対応するのが先程説明したINNER JOINである。

INNER JOINとOUTER JOINの働き

INNER JOINは結合対象のテーブルに結合すべき行が見つからない場合に行が消滅してしまう結合である。したがって結合もとと結合対象の両方が存在しているときに限り行がゆうこうとなる。一方OUTER JOINは本来表から消滅してしまう行も強制的に出力する結合である。

詳しくはスッキリわかるSQL入門第2版を読むと良い。また以下もおそらく同じことを説明している。
https://qiita.com/ngron/items/db4947fb0551f21321c0