0

I have two soql on same object but where condition is vary by single condition mentioned below, I need to combine both and make it as single soql, can someone help me how to do with below soql after where conditions?

1st one have contact.Contact_ID__c != null and 2nd one have Roles != null.I need to combine both in single soql

1st Query:

SELECT
    Id, 
    Roles, 
    contact.contact_Id__c, 
    Account.Id, 
    account.customer_Id__c, 
    Relationship_End_Date__c, 
    IsActive
FROM
    AccountContactRecord
WHERE
    account.customer_Id__c != null  AND  contact.Contact_ID__c != null  AND  Id  in: conList

2nd Query:

SELECT
    Id, 
    Roles, 
    contact.Contact_ID__c, 
    Account.Id, 
    account.customer_Id__c, 
    Ownership__c
FROM
    AccountContactRecord
WHERE
    account.customer_Id__c != null  AND  Roles != null  AND  Id  in: conList
Halfwarr
  • 7,853
  • 6
  • 33
  • 51
roshni T
  • 3
  • 2

1 Answers1

0

Two of the conditions are identical so it's not very hard. Try to put most selective conditions first (filter by Id, by lookup, by any indexed field), good for performance.

where account.customer_Id__c != null and contact.Contact_ID__c != null and Id IN:conList
+
where account.customer_Id__c != null and Roles != null and Id IN:conList

becomes
WHERE Id IN:conList 
    AND Account.Customer_Id__c != null
    AND (Contact.Contact_ID__c != null OR Roles != null)
eyescream
  • 18,088
  • 2
  • 34
  • 46