完璧じゃなくてもとりあえず終わらせるブログ

主にSalesforceの悪夢を記録しています

SOQLで子オブジェクトを指定したい

やってみたらできたんで残しておきます。

関連はこちら
otogijutsu.hatenablog.com


子オブジェクトが多のときに指定した1レコードのみ取得したい

親 : 子 = 1 : n のときに、
子オブジェクトについて指定する1レコードだけ取得する

SELECT id,
    (
        SELECT id
          FROM ChildObjects__r
         WHERE
            Id = :childId
    )
  FROM ParentObject__c
 WHERE
    Id = :parentId

子オブジェクト側でもIdをしてあげればいいだけ。


SOQLでアクセス可能な階層

基準となるオブジェクトから、
 親は5階層上まで
 子は1階層下まで
しかアクセスできません。

ただし、Summer'23から以下のようになりました。
Help And Training Community
といっても、

この機能は、標準およびカスタムオブジェクトに対する REST および SOAP クエリコールを介した SOQL クエリに制限されます。

とのことです。
したがって、開発者コンソールのQuery Editorからはこういったアクセスができますが、Apexからはできません
近い将来、ApexからもこういったSOQLを発行できるといいですね。



よし、とりあえず終わらせたぞ