cafegale(LeafCage備忘録)

LeafCage備忘録(はてなダイアリー)と統一しました。

MySQL覚書

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);