SOQLのサブクエリの結果の取得方法

今回はSOQLのサブクエリの結果の取得方法をご紹介。

そんなの知ってるよ、という方が多いかもしれませんが、Web上にサンプルが少ないようなので紹介しておきます。

下記は、指定した取引先番号の取引先に紐付く取引先責任者情報を取得するサンプルApexコードです。

例のように、サブクエリの結果セットは、「.子リレーション名」で取得できます(ac.Contactsの部分)。

Account[] accounts = 
    [
    Select
        AccountNumber,
         (Select LastName, FirstName From Contacts)
    From
        Account
    Where
        AccountNumber = '10001'
    ];

List<Contact>contactList = new List<Contact>();
for(Account ac : accounts) {
    for(Contact c : ac.Contacts) {
        Contact contact = new Contact();
        contact.LastName = c.LastName;
        contact.FirstName = c.FirstName;
        contactList.add(contact);
    }
}
コメント(0)