You need to sign in to do that
Don't have an account?
Lookup field in where clause of SOQL not returning values
Hi All,
I have a lookup field on a object. I have written a soql to return name and other fields from the object with the looku field in the where clause. But this is not returning me values.
\please help.
list<contact> con = [select id,name from contact where name like 'a%'];
integer consize = con.size(); // returning 1, ( correct )
system.debug(' con size filter ' + consize);
for (contact conn : con)
{
system.debug(' contact name ' + conn.name ); // returning correct name
list<class__c> cls = [select name__c,Fee__c from class__c where classteacher__c =:conn.name];
integer classsize = cls.size(); // showing 0 , but one class is available with class teacher of conn.name
system.debug(' class size ' + classsize);
here classteacher__c is the lookup field to contact.
there is one class with classteacher name which is retuerned by conn.name but it is not being fetched.
Please help.
Hi,
I am assuming tha Classteacher__c is relationship with Contact. The relationships are identified using Ids.
So Instead of Name, you need to use contact Id.
One more thing, you have written the above line inside a for loop, which can hit Apex Governor Limit.
Therefore avoid wrtting a query inside a for loop.
Thanks it solved my problem.
Can u tell me how i can reframe my logic to elimiate soql inside for loop. What is the best possible way.