My background is SQL & am finding challenging while handling some scenarios in SOQL. Here is my scenario:
We have 3 objects that are related (Parent_Obj -> Child_Obj -> Grand_Child_Obj).
We build Master-Detail relationship across these objects & captured data. Now, my job is to populate a new object Combined_Obj using Apex/SOQL which contains information from all the 3 related objects.
To me this is a straight forward activity in SQL (something like this):
INSERT INTO Combined_Obj (col1, col2,...) SELECT Parent_Obj.Name, Parent_Obj.CourseName, Child_Obj.StudentName, Grand_Child_Obj.Marks FROM Parent_Obj, Child_Obj, Grand_Child_Obj WHERE Parent_Obj.ID = Child_Obj.Parent_Ref_ID AND Child_Obj.ID = Grand_Child_Obj.Parent_Ref_ID;
Is something like this possible in SOQL?
I did a SOQL between 3 objects:
SELECT Child_Obj__c.ID, Child_Obj__c.Name, Parent_Ref__r.Name, (SELECT Name from GrandChild_Objs__r) from Child_Obj__c
But this is now need to be inserted back to into the Combined_Obj.
Is it possible to make SOQL to directly insert the selected data into
Combined_Obj without processing through Apex loops?