Apex SOQLで子オブジェクトのレコードを取得する

環境
Salesforce

操作例1
子オブジェクトのSOQL文では、FROM の後に子リレーション名を使います

書式
SELECT Name, (xxx) FROM Account
SELECT 句の中に、 ( ) で囲んだ子オブジェクトに関するSOQL文を含めます。

SOQL文

SELECT Name,
  (
    SELECT LastName
    FROM Contacts
  )
FROM Account

操作例2
子オブジェクトがカスタムオブジェクトの場合、FROMの後は子リレーション名 + __r にする必要があります。

SOQL文

SELECT Name,
  (
    SELECT Name
    FROM Children__r
  )
FROM Parent__c

操作例3
子レコードを参照する際にも子リレーション名を使います。

SOQL文

List<Parent__c> pList = [
    SELECT Name,
      (
        SELECT Name
        FROM Children__r
      )
    FROM Parent__c
];
System.debug(pList[0].Children__r[0].Name);

 

Apex

Posted by arkgame