##テーブルの結合
JOINは複数のテーブルを1つに結合したいときに使います。ONで条件を指定して、テーブル名1にテーブル名2を結合します。結合したテーブルは1つのテーブルとしてデータを取得することができ、「ON テーブル名.カラム名 = テーブル名.カラム名」で指定します。
SELECT *
FROM テーブル名1
JOIN テーブル名2
ON テーブル名1.カラム=テーブル名2.カラム;
WHERE・GROUP BY、関数などを含んだ実行順序を確認しましょう。実行順列に関しては以下の記事を参照
https://qiita.com/yurina0402/items/78ae1f536b6755d6221a
SQLは、取得するテーブルを形成してから検索を行うので、FROM・JOINが先に行われることを覚えておきましょう。
SELECT 関数(カラム),カラム
FROM テーブル名1
JOIN テーブル名2
ON テーブル名1.カラム=テーブル名2.カラム
WHERE カラム = "文字"
GROUP BY カラム;
※JOINを使った結合は、FROMで指定したテーブルを基準に実行されます。ただし、下の図のように外部キーがNULLのレコードは、実行結果に表示されません。
####LEFT JOIN
LEFT JOINを使うことで、FROMで指定したテーブルのレコードを全て取得します。
※外部キーがNULLのレコードもNULLのまま実行結果に表示されます。
SELECT *
FROM テーブル名1
LEFT JOIN テーブル名2
ON テーブル名1.カラム=テーブル名2.カラム;
####3つのテーブル結合
JOINは1つのクエリで、複数回使用できます。JOINを複数回使用しても、FROMは1度だけ書けば大丈夫なので注意しましょう。
SELECT *
FROM テーブル名1
JOIN テーブル名2
ON テーブル名1.カラム=テーブル名2.カラム
LEFT JOIN テーブル名3
ON テーブル名1.カラム=テーブル名3.カラム;