select id,name,Number_of_Subscriptions__c,(Select id from Subscriptions) from Contract

In the above scenario, Contract is parent object and Subscription is child object having lookup relationship.

The child-relationship name is "Subscriptions". But i am trying to execute above query it showing me error:

ERROR at Row:1:Column:54
Didn't understand relationship 'Subscriptions' in FROM part of query call. If 
you are attempting to use a custom relationship, be sure to append the '__r' 
after the custom relationship name. Please reference your WSDL or the describe 
call for the appropriate names.

I tried using __r also:

select id,name,Number_of_Subscriptions__c,(Select id from Subscriptions__r) from Contract

doesn't worked out!!

Any kind of help is appreciated!!

2 Answers 2


On the assumption that you have a custom object, Subscription__c, and that the Subscription__c has a (possibly master detail child) lookup field that references Contract, the important details are provided in the lookup field. For example, I have a "Shift_Break__c" custom object that has a lookup to "Shift__c". The field details are as follows:

enter image description here

It is the value of "Child Relationship Name", plus the "__r" suffix (so here Shift_Breaks__r) since this is a custom relationship, that must be applied in the nested SELECT.

Also look out for whether you are trying to reference a relationship from a different package (namespace) compared to where the query is being executed - in this context you'll need to prefix the relationship name with the package's namespace.

  • Hi Phil, I used the relationship name only in my query then also it is throwing me error.
    – situ
    Feb 6, 2020 at 9:09

I have used relationship name only in my nested SOQL query:

enter image description here

enter image description here

  • Is the "Contract" you are querying the same one that has this lookup field? If you click on the "Lookup Options" section's "Related To" link ("Contract") does this take you to a Salesforce "Contract" object, or is it a custom one? If it is a custom object, your query needs to do "... FROM Contract__c".
    – Phil W
    Feb 6, 2020 at 10:38
  • It is taking me to the same Contract object when i clicked on Contract Link from 'Lookup option' section.
    – situ
    Feb 6, 2020 at 10:47
  • OK, and is this custom or some Salesforce object? If it is custom, you have to have the "__c" suffix on the object type name in your query.
    – Phil W
    Feb 6, 2020 at 11:29
  • 1
    This should be an edit to your question, rather than an answer, I think.
    – Derek F
    Feb 6, 2020 at 12:14
  • 1
    Looks like subscription might be part of a managed package? In that case, you'll likely need to append the namespace to the beginning of the relationship, like MyNamespace__Subscriptions__r Feb 6, 2020 at 12:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .