__c, __r만약 A라는 Object와 B라는 Custom Object가 서로 연관 관계라면
B라는 Object에는 A__c 라는 필드가 있을 것이다.
이때 B의 Name, A의 ID, A의 Name을 가져오는 SOQL을 작성해보면 다음과 같이 사용할 수 있다.
SELECT Name, A__c, A__r.Name FROM A__c
쿼리를 보면 __c는 ID만을 반환하고 __r을 사용하면 해당 Object의 값의 참조가 반환된다
__c, __rStandard Objects에서도 사용이 가능하다.
예를들어 Account와 Contact 관계는 Lookup 연관관계를 가진다.
Contact의 Name, Account의 ID, Account의 Name을 가져오고 싶다면 다음과 같이 SOQL을 작성하면 된다.
SELECT Name, AccountId, Account.Name FROM Contact
다른 예시
SELECT Name, Product2Id, product2.Name, Pricebook2Id, Pricebook2.Name FROM PricebookEntry
Standard Objects는 __r 대신 해당 Object의 Object 명을 작성해주면 된다.
[참고자료]