FROM 句 / JOIN 構文 # 1テーブル FROM テーブル名 テーブル名のエイリアス # INNER JOINする場合 FROM テーブル名 a INNER JOIN テーブル名 b ON a.xxx_id = b.xxx_id # 一時テーブル作成とINNER JOINする場合 FROM ( SELECT ... FROM テーブル名 GROUP BY xxx_id ) c INNER JOIN テーブル名 d ON c.customer_id = d.customer_id ... INNER JOIN INNER JOINする順番 メインとなるテーブル or データの多いテーブルから書いていく ※OUTER JOINする際にはRIGHT OUTER JOINではなく、LEFT OUTER JOINを使う 集計するテーブルがある場合は集計対象テーブルから書いていくことでSQLがシンプルになる ※ユーザー毎の合計支払額と合計支払い数の集計の場合はcustomerではなく、paymentの一時テーブルから INNER JOINは共に存在するレコードだけに絞り込まれる 一時テーブルをINNER JOINする際の注意点 一時テーブル作成のサブクエリがまず実行されるため、外側のクエリに依存(相関サブクエリに)できない 一時テーブルは外側のクエリの実行が完了するまでメモリに保持される OUTER JOIN いつ使うか SELECTするカラムにnullやSELECTする集計関数の結果が0になるものも取得したい場合 注意点 テーブルA LEFT OUTER JOIN テーブルB ON テーブルA.id = テーブルB.id ※テーブルB RIGHT OUTER JOIN テーブルA ON テーブルB.id = テーブルA.idは使わない