論理削除テーブルを結合するときにハマった
未熟なものでSQLの組み方でハマりました。
これも備忘録として残しておきます。
例えば、AテーブルとBテーブルを結合させる場面。
条件はユーザーIDが10で、削除されていない(delete_flg=0)カラムが欲しい。
$sql = 'SELECT * FROM Aテーブル as a LEFT JOIN Bテーブル as b ON
a.id = a.user_id WHERE a.id =10 AND a.delete_flg = 0 AND b.delete_flg = 0';
とすると期待する結果が得られない。
$sql = 'SELECT * FROM Aテーブル as a LEFT JOIN Bテーブル as b ON
a.id = a.user_id AND b.delete_flg = 0 WHERE a.id =10 AND a.delete_flg = 0;
テーブルを結合させる時点で、delete_flg =0 の条件をつけるべき。