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;