Memos About Salesforce

Salesforceにハマってたこと!

SFDC 参照関係の辿り方(SOQL)

こんにちは、管理人の@Salesforce.Zです。

今回、ショット記事です。

参照関係の場合に

親へのアクセス方法について

共有します。

基本の基本かもが

以外に知らない子もいました。




目次

(子)取引先責任者から(親)取引先へのアクセス

カスタム項目なら

API参照名の末尾「__c」の代わりに「__r」とする事で、

辿ることが出来る。

WHERE句の条件として使用することも可能。
・E.X.コード

Integer i = 0;

for(contact con :[Select Id, Name, Account.Name FROM Contact limit 5]){

    System.debug('*****取引先名' + i + '  ' + con.Account.Name);

    i++;

}

・出力結果
f:id:jude2016:20180721155403p:plain

親から子へのアクセス

・E.X.コード

Integer i = 0;

for(account acc :[Select Id, Name, (Select Id, Name FROM Contacts) FROM account]){

    if(acc.Contacts.size() > 0){

    	System.debug('親ー取引先名:' + acc.Name);

    }

    for(contact con :acc.Contacts){

        System.debug('          子ー取引先責任者名:' + con.Name);

    }

}

・出力結果
f:id:jude2016:20180721160721p:plain

Select Id, Name, (Select Id, Name FROM Contacts) FROM account;

Select Id, Name FROM Contacts

部分がサブクエリと呼びます。

Contactsが子リレーション名である

オブジェクトの設定画面から確認できます。

f:id:jude2016:20180721160905p:plain


取引先(Account)と取引先責任者(Contact)の関係は下記の
画像で確認できます。

https://developer.salesforce.com/docs/resources/img/ja-jp/214.0?doc_id=images%2Frel_basic.gif&folder=soql_sosl