🖥
SQL—分かりにくい JOIN / INNER JOIN / OUTER JOIN / LEFT JOIN / RIGHT JOIN の違い
SQLの JOIN って。
用語がたくさんあって分かりにくいですね。
しかし覚えれば良いのは、実は次の三つだけ です。(本当です)
- JOIN
- RIGHT JOIN
- LEFT JOIN
これ以外のことは 考えなくて大丈夫 です。
なぜなら、あとはすべて この三つの別名 に過ぎないからです。
分類
- INNER JOIN はなんと、1種類だけです。 (驚きましたか?)
- OUTER JOIN は2種類あります。
- そして LEFT と RIGHT に分かれます。
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オープンチャットもご利用ください。
公開日時
2018-08-08
Discussion