What Is Parent-To-Child Relationship Query?
Whenever we need to fetch data of parent records with their related child records, then the query we use is parent-to-child.
For Standard Objects:
SELECT(SELECT Child_Obj_Field FROM Child_Relationship_Name) FROM Parent_Object;
List < Account > accList = [SELECT Name, NumberOfEmployees, (SELECT Name, Amount, CloseDate FROM Opportunities) FROM Account];
for (Account acc: accList) {
System.debug(‘ACC: ’+acc.Name + ’NoEmpl: ’+acc.numberOfEmployees.; List < Opportunity > opList = acc.Opportunities;
for (opportunity o: oplist) {
System.debug(‘Opportunity Name: ’+o.Name + ‘Amount: ’+o.Amount);
}
}
For Custom Objects:
SELECT(SELECT Child_Obj_Field FROM(Child_Relationship_Name) __r)
FROM Parent_Object;
List < Bank__c > bankList = [SELECT Bank_Name__c, (SELECT Branch_Id__c, Name, State__c FROM Branches__r) FROM Bank__c];
for (Bank__c ba: bankList) {
List < Branch__c > branchList = ba.Branches__r;
for (Branch__c br: branchList) {
System.debug('Bank:' + ba.Bank_Name__c + '|Branch ID:' + br.Branch_ID__c + '|Branch Name:' + br.Name + '|Branch State:' + br.State__c);
}
}
You can not write a subquery inside a subquery in SOQL.