LEFT JOIN で NULL が出ない

table1 と table2 を LEFT JOIN すると、
ON の結合条件に当てはまるデータが table2 に存在しない場合は、
NULL で返ってくる。

でも、今回は返ってこなかった。
理由は table2 の条件を on ではなく、 where で設定していたから。
where で設定すると、そもそも出力対象外になるらしい。
知らなかった・・・。

以下はダメ

SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.table1_id WHERE table2.user_id = 1;

以下はOK

SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.table1_id AND table2.user_id = 1;