joinする相手をselectで条件付けたやつにする時には、asで別名を付けてあげないとエラーになる
補足: これはJOINではなくサブクエリの問題。、サブクエリは原則、名前をつけなければいけない。
エラー
select * from TableA left join ( select * from TableB where FieldA = 1 ) on TableA.FieldB = TableB.FieldB;
OK!
select * from TableA left join ( select * from TableB where FieldA = 1 ) as TableC on TableA.FieldB = TableC.FieldB;
SELECTで複数の行が得られた結果を、条件として使う時にはANYなどを前置する
エラー
select * from TableA where FieldA = (select FieldA from TableA where FieldB = 19);
OK!
select * from TableA where FieldA = any (select FieldA from TableA where FieldB = 19);