Is there any use for defining additional entity types in a SOQL FROM clause? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) 2019 Moderator Election Q&A - Questionnaire 2019 Community Moderator Election Resultsquery user and profileSOQL relationship name syntax errorDynamic SOQL bindingWhat is wrong with my relationship?How to query all records changed since date?SOQL for Lookup relationshipLeft join in Bulk APISelect where not exists / count(otherRecord) = 0How can we Get the records of contacts where phone= account.phone?What types of fields are groupable in a SOQL `GROUP BY` clause?SOQL Search function of Contact Name With Account Parent to Contact Child
What is the longest distance a 13th-level monk can jump while attacking on the same turn?
Why did the IBM 650 use bi-quinary?
Why is "Captain Marvel" translated as male in Portugal?
How to deal with a team lead who never gives me credit?
Right-skewed distribution with mean equals to mode?
How can I fade player when goes inside or outside of the area?
How to bypass password on Windows XP account?
When -s is used with third person singular. What's its use in this context?
Letter Boxed validator
Did Xerox really develop the first LAN?
I am not a queen, who am I?
Bonus calculation: Am I making a mountain out of a molehill?
How do I mention the quality of my school without bragging
How does cp -a work
How much radiation do nuclear physics experiments expose researchers to nowadays?
Do I really need recursive chmod to restrict access to a folder?
Are my PIs rude or am I just being too sensitive?
What are the motives behind Cersei's orders given to Bronn?
Is there a documented rationale why the House Ways and Means chairman can demand tax info?
Is there a service that would inform me whenever a new direct route is scheduled from a given airport?
How to find all the available tools in macOS terminal?
Can a non-EU citizen traveling with me come with me through the EU passport line?
Is the address of a local variable a constexpr?
How widely used is the term Treppenwitz? Is it something that most Germans know?
Is there any use for defining additional entity types in a SOQL FROM clause?
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)
2019 Moderator Election Q&A - Questionnaire
2019 Community Moderator Election Resultsquery user and profileSOQL relationship name syntax errorDynamic SOQL bindingWhat is wrong with my relationship?How to query all records changed since date?SOQL for Lookup relationshipLeft join in Bulk APISelect where not exists / count(otherRecord) = 0How can we Get the records of contacts where phone= account.phone?What types of fields are groupable in a SOQL `GROUP BY` clause?SOQL Search function of Contact Name With Account Parent to Contact Child
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
Here's a somewhat odd SOQL query from the question query user and profile:
select user.id, user.Email,user.FirstName,user.LastName,user.profile.name,user.Username,user.IsActive
from user, user.profile
Note that the FROM
clause includes both user
and user.profile
.
Here is a simpler example to follow the Contact to Account relationship:
select Id, Name, Account.Name from Contact, Contact.Account
The same query with the relationship join can be performed with:
Select Id, Name, Account.Name From Contact
Is there any purpose to supporting additional SObject types in the from clause, or is it vestigial?
Is is outlined as supported syntax in SOQL.
SELECT fieldList [subquery][...]
[TYPEOF typeOfField whenExpression[...] elseExpression END][...]
FROM objectType[,...]
[USING SCOPE filterScope]
Out of interest, if you don't use a valid sObject relationship on the additional sObject types you get the following message:
INVALID_TYPE:
Name, Account.Name From Contact, Account
^
ERROR at Row:1:Column:45
A driving SObject type has already been set, all other entity types in the FROM clause must
be relationships to the initial object. The driving object is Contact.
While doing some checking I found this old dev forum question that indicated it was added to the syntax in Winter '15. Or at least documented then. - Missing doc for new SOQL multiple object SELECT?
soql
add a comment |
Here's a somewhat odd SOQL query from the question query user and profile:
select user.id, user.Email,user.FirstName,user.LastName,user.profile.name,user.Username,user.IsActive
from user, user.profile
Note that the FROM
clause includes both user
and user.profile
.
Here is a simpler example to follow the Contact to Account relationship:
select Id, Name, Account.Name from Contact, Contact.Account
The same query with the relationship join can be performed with:
Select Id, Name, Account.Name From Contact
Is there any purpose to supporting additional SObject types in the from clause, or is it vestigial?
Is is outlined as supported syntax in SOQL.
SELECT fieldList [subquery][...]
[TYPEOF typeOfField whenExpression[...] elseExpression END][...]
FROM objectType[,...]
[USING SCOPE filterScope]
Out of interest, if you don't use a valid sObject relationship on the additional sObject types you get the following message:
INVALID_TYPE:
Name, Account.Name From Contact, Account
^
ERROR at Row:1:Column:45
A driving SObject type has already been set, all other entity types in the FROM clause must
be relationships to the initial object. The driving object is Contact.
While doing some checking I found this old dev forum question that indicated it was added to the syntax in Winter '15. Or at least documented then. - Missing doc for new SOQL multiple object SELECT?
soql
Ah, I finally know how this strange syntax can actually be used. No idea on what it actually does though. Maybe it helps with choosing indices to use, or helps disambiguate multiple references to the same related SObject?
– Derek F
Apr 9 at 1:26
@DerekF Currently is seems redundant. Like it was maybe a left over from the SQL query origins. I'm still not sure what it would help disambiguate. Maybe for polymorphic relationships?
– Daniel Ballinger
Apr 9 at 1:36
add a comment |
Here's a somewhat odd SOQL query from the question query user and profile:
select user.id, user.Email,user.FirstName,user.LastName,user.profile.name,user.Username,user.IsActive
from user, user.profile
Note that the FROM
clause includes both user
and user.profile
.
Here is a simpler example to follow the Contact to Account relationship:
select Id, Name, Account.Name from Contact, Contact.Account
The same query with the relationship join can be performed with:
Select Id, Name, Account.Name From Contact
Is there any purpose to supporting additional SObject types in the from clause, or is it vestigial?
Is is outlined as supported syntax in SOQL.
SELECT fieldList [subquery][...]
[TYPEOF typeOfField whenExpression[...] elseExpression END][...]
FROM objectType[,...]
[USING SCOPE filterScope]
Out of interest, if you don't use a valid sObject relationship on the additional sObject types you get the following message:
INVALID_TYPE:
Name, Account.Name From Contact, Account
^
ERROR at Row:1:Column:45
A driving SObject type has already been set, all other entity types in the FROM clause must
be relationships to the initial object. The driving object is Contact.
While doing some checking I found this old dev forum question that indicated it was added to the syntax in Winter '15. Or at least documented then. - Missing doc for new SOQL multiple object SELECT?
soql
Here's a somewhat odd SOQL query from the question query user and profile:
select user.id, user.Email,user.FirstName,user.LastName,user.profile.name,user.Username,user.IsActive
from user, user.profile
Note that the FROM
clause includes both user
and user.profile
.
Here is a simpler example to follow the Contact to Account relationship:
select Id, Name, Account.Name from Contact, Contact.Account
The same query with the relationship join can be performed with:
Select Id, Name, Account.Name From Contact
Is there any purpose to supporting additional SObject types in the from clause, or is it vestigial?
Is is outlined as supported syntax in SOQL.
SELECT fieldList [subquery][...]
[TYPEOF typeOfField whenExpression[...] elseExpression END][...]
FROM objectType[,...]
[USING SCOPE filterScope]
Out of interest, if you don't use a valid sObject relationship on the additional sObject types you get the following message:
INVALID_TYPE:
Name, Account.Name From Contact, Account
^
ERROR at Row:1:Column:45
A driving SObject type has already been set, all other entity types in the FROM clause must
be relationships to the initial object. The driving object is Contact.
While doing some checking I found this old dev forum question that indicated it was added to the syntax in Winter '15. Or at least documented then. - Missing doc for new SOQL multiple object SELECT?
soql
soql
asked Apr 9 at 1:12
Daniel BallingerDaniel Ballinger
74.7k16155408
74.7k16155408
Ah, I finally know how this strange syntax can actually be used. No idea on what it actually does though. Maybe it helps with choosing indices to use, or helps disambiguate multiple references to the same related SObject?
– Derek F
Apr 9 at 1:26
@DerekF Currently is seems redundant. Like it was maybe a left over from the SQL query origins. I'm still not sure what it would help disambiguate. Maybe for polymorphic relationships?
– Daniel Ballinger
Apr 9 at 1:36
add a comment |
Ah, I finally know how this strange syntax can actually be used. No idea on what it actually does though. Maybe it helps with choosing indices to use, or helps disambiguate multiple references to the same related SObject?
– Derek F
Apr 9 at 1:26
@DerekF Currently is seems redundant. Like it was maybe a left over from the SQL query origins. I'm still not sure what it would help disambiguate. Maybe for polymorphic relationships?
– Daniel Ballinger
Apr 9 at 1:36
Ah, I finally know how this strange syntax can actually be used. No idea on what it actually does though. Maybe it helps with choosing indices to use, or helps disambiguate multiple references to the same related SObject?
– Derek F
Apr 9 at 1:26
Ah, I finally know how this strange syntax can actually be used. No idea on what it actually does though. Maybe it helps with choosing indices to use, or helps disambiguate multiple references to the same related SObject?
– Derek F
Apr 9 at 1:26
@DerekF Currently is seems redundant. Like it was maybe a left over from the SQL query origins. I'm still not sure what it would help disambiguate. Maybe for polymorphic relationships?
– Daniel Ballinger
Apr 9 at 1:36
@DerekF Currently is seems redundant. Like it was maybe a left over from the SQL query origins. I'm still not sure what it would help disambiguate. Maybe for polymorphic relationships?
– Daniel Ballinger
Apr 9 at 1:36
add a comment |
1 Answer
1
active
oldest
votes
One possible use is to use is to combine it with the Alias notation for the related sObjects.
E.g.
select c.Id, c.Name, ca.Name, art.Name
from Contact c, Contact.Account ca, Contact.Account.RecordType art
If you wanted to query many fields from the related sObject then you could save a significant number of characters if you are running up against the 20,000 character limit.
2
Even if you don't care about the query limit, it can be nice to save all that typing!
– Adrian Larson♦
Apr 9 at 17:01
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%2f257078%2fis-there-any-use-for-defining-additional-entity-types-in-a-soql-from-clause%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
One possible use is to use is to combine it with the Alias notation for the related sObjects.
E.g.
select c.Id, c.Name, ca.Name, art.Name
from Contact c, Contact.Account ca, Contact.Account.RecordType art
If you wanted to query many fields from the related sObject then you could save a significant number of characters if you are running up against the 20,000 character limit.
2
Even if you don't care about the query limit, it can be nice to save all that typing!
– Adrian Larson♦
Apr 9 at 17:01
add a comment |
One possible use is to use is to combine it with the Alias notation for the related sObjects.
E.g.
select c.Id, c.Name, ca.Name, art.Name
from Contact c, Contact.Account ca, Contact.Account.RecordType art
If you wanted to query many fields from the related sObject then you could save a significant number of characters if you are running up against the 20,000 character limit.
2
Even if you don't care about the query limit, it can be nice to save all that typing!
– Adrian Larson♦
Apr 9 at 17:01
add a comment |
One possible use is to use is to combine it with the Alias notation for the related sObjects.
E.g.
select c.Id, c.Name, ca.Name, art.Name
from Contact c, Contact.Account ca, Contact.Account.RecordType art
If you wanted to query many fields from the related sObject then you could save a significant number of characters if you are running up against the 20,000 character limit.
One possible use is to use is to combine it with the Alias notation for the related sObjects.
E.g.
select c.Id, c.Name, ca.Name, art.Name
from Contact c, Contact.Account ca, Contact.Account.RecordType art
If you wanted to query many fields from the related sObject then you could save a significant number of characters if you are running up against the 20,000 character limit.
answered Apr 9 at 1:50
Daniel BallingerDaniel Ballinger
74.7k16155408
74.7k16155408
2
Even if you don't care about the query limit, it can be nice to save all that typing!
– Adrian Larson♦
Apr 9 at 17:01
add a comment |
2
Even if you don't care about the query limit, it can be nice to save all that typing!
– Adrian Larson♦
Apr 9 at 17:01
2
2
Even if you don't care about the query limit, it can be nice to save all that typing!
– Adrian Larson♦
Apr 9 at 17:01
Even if you don't care about the query limit, it can be nice to save all that typing!
– Adrian Larson♦
Apr 9 at 17:01
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%2f257078%2fis-there-any-use-for-defining-additional-entity-types-in-a-soql-from-clause%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
Ah, I finally know how this strange syntax can actually be used. No idea on what it actually does though. Maybe it helps with choosing indices to use, or helps disambiguate multiple references to the same related SObject?
– Derek F
Apr 9 at 1:26
@DerekF Currently is seems redundant. Like it was maybe a left over from the SQL query origins. I'm still not sure what it would help disambiguate. Maybe for polymorphic relationships?
– Daniel Ballinger
Apr 9 at 1:36