[SOQL]: Reference Id field on a custom object without dot notation?
I know that with standard objects one can do AccountId
instead of Account.Id
inside a SOQL query. Is it possible to do the same for custom objects, say for My_Object__c
? Is there a way to reference the Id without using a dot .
notation?
I am currently getting the following error if I use the dot notation: The left operand 'My_Object__r.Id' cannot have more than one level of relationships
.
I get this when executing the following query:
SELECT
Id,
My_Object__r.Some_Field__c
FROM Opportunity
WHERE My_Object__r.Id IN (SELECT Id FROM My_Object__c WHERE Name LIKE '%myobjectname%')
LIMIT 1
soql
add a comment |
I know that with standard objects one can do AccountId
instead of Account.Id
inside a SOQL query. Is it possible to do the same for custom objects, say for My_Object__c
? Is there a way to reference the Id without using a dot .
notation?
I am currently getting the following error if I use the dot notation: The left operand 'My_Object__r.Id' cannot have more than one level of relationships
.
I get this when executing the following query:
SELECT
Id,
My_Object__r.Some_Field__c
FROM Opportunity
WHERE My_Object__r.Id IN (SELECT Id FROM My_Object__c WHERE Name LIKE '%myobjectname%')
LIMIT 1
soql
1
instead of My_Object__r.Id you can just use My_Object__c
– Pranay Jaiswal
Dec 3 '18 at 19:08
add a comment |
I know that with standard objects one can do AccountId
instead of Account.Id
inside a SOQL query. Is it possible to do the same for custom objects, say for My_Object__c
? Is there a way to reference the Id without using a dot .
notation?
I am currently getting the following error if I use the dot notation: The left operand 'My_Object__r.Id' cannot have more than one level of relationships
.
I get this when executing the following query:
SELECT
Id,
My_Object__r.Some_Field__c
FROM Opportunity
WHERE My_Object__r.Id IN (SELECT Id FROM My_Object__c WHERE Name LIKE '%myobjectname%')
LIMIT 1
soql
I know that with standard objects one can do AccountId
instead of Account.Id
inside a SOQL query. Is it possible to do the same for custom objects, say for My_Object__c
? Is there a way to reference the Id without using a dot .
notation?
I am currently getting the following error if I use the dot notation: The left operand 'My_Object__r.Id' cannot have more than one level of relationships
.
I get this when executing the following query:
SELECT
Id,
My_Object__r.Some_Field__c
FROM Opportunity
WHERE My_Object__r.Id IN (SELECT Id FROM My_Object__c WHERE Name LIKE '%myobjectname%')
LIMIT 1
soql
soql
asked Dec 3 '18 at 19:05
ArthleteArthlete
852515
852515
1
instead of My_Object__r.Id you can just use My_Object__c
– Pranay Jaiswal
Dec 3 '18 at 19:08
add a comment |
1
instead of My_Object__r.Id you can just use My_Object__c
– Pranay Jaiswal
Dec 3 '18 at 19:08
1
1
instead of My_Object__r.Id you can just use My_Object__c
– Pranay Jaiswal
Dec 3 '18 at 19:08
instead of My_Object__r.Id you can just use My_Object__c
– Pranay Jaiswal
Dec 3 '18 at 19:08
add a comment |
1 Answer
1
active
oldest
votes
Yes. For some custom relationship from child to parent My_Object__r
, your Id will be My_Object__c
, and you can reference that field in your SOQL query without performing a join/traversing the relationship. (In fact, it is preferable that you do so!)
The place you have to go somewhere special to determine the relationship name is when you're querying from parent to child, where you locate the child relationship name on the configuration of the lookup on the child.
Here, going from child to parent, your relationship name and Id field name are both derived directly from the API name of the lookup field. The Id field is just the lookup field; the relationship is the lookup field with __r
.
I completely missed that! Thank you!
– Arthlete
Dec 3 '18 at 19:10
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "459"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f241266%2fsoql-reference-id-field-on-a-custom-object-without-dot-notation%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Yes. For some custom relationship from child to parent My_Object__r
, your Id will be My_Object__c
, and you can reference that field in your SOQL query without performing a join/traversing the relationship. (In fact, it is preferable that you do so!)
The place you have to go somewhere special to determine the relationship name is when you're querying from parent to child, where you locate the child relationship name on the configuration of the lookup on the child.
Here, going from child to parent, your relationship name and Id field name are both derived directly from the API name of the lookup field. The Id field is just the lookup field; the relationship is the lookup field with __r
.
I completely missed that! Thank you!
– Arthlete
Dec 3 '18 at 19:10
add a comment |
Yes. For some custom relationship from child to parent My_Object__r
, your Id will be My_Object__c
, and you can reference that field in your SOQL query without performing a join/traversing the relationship. (In fact, it is preferable that you do so!)
The place you have to go somewhere special to determine the relationship name is when you're querying from parent to child, where you locate the child relationship name on the configuration of the lookup on the child.
Here, going from child to parent, your relationship name and Id field name are both derived directly from the API name of the lookup field. The Id field is just the lookup field; the relationship is the lookup field with __r
.
I completely missed that! Thank you!
– Arthlete
Dec 3 '18 at 19:10
add a comment |
Yes. For some custom relationship from child to parent My_Object__r
, your Id will be My_Object__c
, and you can reference that field in your SOQL query without performing a join/traversing the relationship. (In fact, it is preferable that you do so!)
The place you have to go somewhere special to determine the relationship name is when you're querying from parent to child, where you locate the child relationship name on the configuration of the lookup on the child.
Here, going from child to parent, your relationship name and Id field name are both derived directly from the API name of the lookup field. The Id field is just the lookup field; the relationship is the lookup field with __r
.
Yes. For some custom relationship from child to parent My_Object__r
, your Id will be My_Object__c
, and you can reference that field in your SOQL query without performing a join/traversing the relationship. (In fact, it is preferable that you do so!)
The place you have to go somewhere special to determine the relationship name is when you're querying from parent to child, where you locate the child relationship name on the configuration of the lookup on the child.
Here, going from child to parent, your relationship name and Id field name are both derived directly from the API name of the lookup field. The Id field is just the lookup field; the relationship is the lookup field with __r
.
edited Dec 3 '18 at 19:18
answered Dec 3 '18 at 19:07
David ReedDavid Reed
32.2k71948
32.2k71948
I completely missed that! Thank you!
– Arthlete
Dec 3 '18 at 19:10
add a comment |
I completely missed that! Thank you!
– Arthlete
Dec 3 '18 at 19:10
I completely missed that! Thank you!
– Arthlete
Dec 3 '18 at 19:10
I completely missed that! Thank you!
– Arthlete
Dec 3 '18 at 19:10
add a comment |
Thanks for contributing an answer to Salesforce Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f241266%2fsoql-reference-id-field-on-a-custom-object-without-dot-notation%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
instead of My_Object__r.Id you can just use My_Object__c
– Pranay Jaiswal
Dec 3 '18 at 19:08