🖥

SQL—分かりにくい JOIN / INNER JOIN / OUTER JOIN / LEFT JOIN / RIGHT JOIN の違い

2023/08/26に公開

SQLの JOIN って。
用語がたくさんあって分かりにくいですね。

しかし覚えれば良いのは、実は次の三つだけ です。(本当です)

  • JOIN
  • RIGHT JOIN
  • LEFT JOIN

これ以外のことは 考えなくて大丈夫 です。
なぜなら、あとはすべて この三つの別名 に過ぎないからです。

分類

  • INNER JOIN はなんと、1種類だけです。 (驚きましたか?)
  • OUTER JOIN は2種類あります。
    • そして LEFT と RIGHT に分かれます。

image

JOIN とは

「内部結合」です。
「結合できなかった行」は返しません。

本当の名前は INNER JOIN といいます。
でもそのことは、今は話さなくても良いでしょう。

JOIN はシャイで、優しすぎる。そして世間知らずです。
JOIN には、外の世界のことが分からないのです。

しかしこの世界にひとつしか存在しない、かけがえのないものが JOIN です。

LEFT JOIN / RIGHT JOIN とは

彼らはどちらも「外部結合」です。
LEFT とか RIGHT とか。大人しいフリしていますが、実は OUTER JOIN の一族です。

本当の名前を LEFT OUTER JOIN / RIGHT OUTER JOIN といいます。
でもそのことは、今は忘れてください。

「結合できなかった行」がある場合も、でもそんなの関係ねえ。
無理やり表示させるので、一部のレコードは NULL になってしまったりします。

LEFT JOIN / RIGHT JOIN には優しさがありません。強引なやつです。
LEFT JOIN / RIGHT JOIN は小さなことなんか気にしないのです。

しかし二人の中でも LEFT JOIN はまだ優しく。「主」のテーブルに従います。
RIGHT JOIN は本当に横暴で。「従」のテーブルを全て返すのです。

補足

  • 滅多に使わない FULL OUTER JOIN / CROSS JOIN のことは忘れてください。今日は世界から消しました。
  • JOIN 関係が覚えにくいのは。根本的に SQL の命名が悪い気がします。
  • 正確には短い名前の方が「別名」ですが、でもそんなの関係ねえ。

参考

備考

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2018-08-08

Discussion