【Java】String.formatを使ってみよう!【基本から0埋め・カンマ区切り・進数変換まで!】
野田竣介
フェルメール株式会社
今回はこのような質問をいただきました。
JOIN, LEFT JOIN, RIGHT JOINって何が違うの?
名前は似ているけど処理としては全然違うんですよね。
そこで今回はこちらの質問について解説していきます!
特徴や違いについてざっくりと解説していきます!
JOINとINNER JOINは同意で、内部結合を意味します。
紐付いているレコードのみで新たなテーブルを表示します。
SELECT * FROM table1 JOIN table2 ON table1.id = table2.table1_id
table1.id = table2.table1_idのもののみを表示します。
どちらかのテーブルにデータが存在しなかったり、NULLだったりした場合には表示されません。
逆に、同じid(table1_id)の行が複数ある場合は、複製して表示します。
外部結合にはLEFT JOIN(左外部結合)とRIGHT JOIN(右外部結合)が存在します。
紐付いているレコード以外も含めて新たなテーブルを表示します。
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.table1_id
LEFT JOINということで左のテーブル(table1)はすべて表示されます。
もし、右のテーブル(table2)にデータが存在しなかった場合はNULLで表示されます。
左のテーブルを基準にしてデータを追加したい場合には便利そうですね。
SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.table1_id
RIGHT JOINはLEFT JOINの逆で、右のテーブル(table2)がすべて表示されます。
その他の仕様もLEFT JOINの逆になります。
なんとなく使うこともできると思いますが、適切な結合をしっかり考えた上で使いたいですね。
LEFT JOINとRIGHT JOINの基本は同じなので、どちらかを覚えておけば大丈夫です。
パフォーマンスを意識するとテーブル結合は重要なので、しっかりと覚えておきたいですね!