SOQLで子オブジェクトを取得する
カスタムオブジェクトに関してのみ記載します。
まずは結論から。
子オブジェクトを取得するSOQL
具体例
SELECT id, ( SELECT id FROM ChildObjects__r ) FROM ParentObject__c
サブクエリ*1で指定するFROM句がSFDCならではですね。
構文
SELECT id, ( SELECT id FROM [子リレーション名]__r ) FROM ParentObject__c
カスタムオブジェクトは「__c」が自動付与されますが、リレーション名をSOQLで指定するときには「__r」を付与する必要があります。
(付与する必要がある、というかSFDCが勝手にそのように名前を裏で付けているのでそれを使わなければならない、というのが本当ですね)
子リレーション名とは
子オブジェクトに、項目(データ型:主従関係)を作成する際に任意で設定する名前です。
おそらくほとんどの現場では標準オブジェクトの例に則って、子リレーション名は「子オブジェクト名の複数形(s)」としているケースが多いのではないかと思いますが、途中から入った現場だと全然しきたりがわからないので子リレーション名の確認方法は押さえておきたいですね。
また、サブクエリで取得した子オブジェクトはList型で保持されることも意識しておきたい点です。
よし、とりあえず終わらせたぞ
*1:SFDCでは正しくはリレーションクエリ