はじめに
SQLのJOIN句にはいくつか省略形がありますが、気を抜くと分からなくなることがあるので備忘録として残します。
同じような方のお役に立てば幸いです。
JOIN
JOINとだけ記述した場合は、INNER JOIN(内部結合)になります。
つまり、以下の2つのクエリは全く同じ意味になります。
SELECT * FROM table1 INNER JOIN table2 ON table1.common_column = table2.common_column;
SELECT * FROM table1 JOIN table2 ON table1.common_column = table2.common_column;
また、今回の趣旨とは異なりますが、結合条件が同じカラム名の場合はUSINGを使って以下のような記述が可能です。
SELECT * FROM table1 JOIN table2 USING (common_column);
INNER JOIN(内部結合)についてはこちらを参照してください。
LEFT JOIN, RIGHT JOIN, FULL JOIN
LEFT JOINという書き方も可能です。
この場合は、LEFT OUTER JOIN(左外部結合)になります。
つまり、以下の2つのクエリは全く同じ意味になります。
SELECT * FROM table1 LEFT OUTER JOIN table2 ON table1.common_column = table2.common_column;
SELECT * FROM table1 LEFT JOIN table2 ON table1.common_column = table2.common_column;
RIGHT JOIN, FULL JOINについても同様です。
まとめ
まとめると、以下のようになります。
INNER JOIN = JOIN
LEFT OUTER JOIN = LEFT JOIN
RIGHT OUTER JOIN = RIGHT JOIN
FULL OUTER JOIN = FULL JOIN
INNERとOUTERは省略可能ということですね。
他にもあれば教えていただければ幸いです。
以上です。