Given a list of Opportunity records named opportunityList, which code snippet is best for querying all Contacts of the Opportunity’s Account?
- List <Contact> contactList = new List <Contact>();
for(Opportunity o : opportunityList){
Account a = [SELECT Id, (SELECT Id FROM Contacts) FROM Account WHERE Id = :o.AccountId]
contactList.addAll(a.Contacts);
) - List <Contact> contactList = new List <Contact>();
Set <Id> accountIds = new Set <Id> ();
for (Opportunity o : opportunityList){
contactIds.add(o.ContactId);
}
for(Contact c : [SELECT Id FROM Contact WHERE Id IN :contactIds]){
contactList.add(c);
} - List <Contact> contactList = new List <Contact>();
Set <Id> accountIds = new Set <Id> ();
for(Opportunity o : opportunityList){
accountIds.add(o.AccountId);
}
for(Account a : [SELECT Id, (SELECT Id FROM Contacts) FROM Account WHERE Id IN :accountIds]){
contactList.addAll(a.Contacts);
} - List <Contact> contactList = new List <Contact>();
for ( Contact c : [SELECT Id FROM Contact WHERE AccountId IN :opportunityList.AccountId] ){
contactList.add(c);
}
Reveal Solution Next Question