Is there any use for defining additional entity types in a SOQL FROM clause?query 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

Can a planet have a different gravitational pull depending on its location in orbit around its sun?

Does a dangling wire really electrocute me if I'm standing in water?

Denied boarding due to overcrowding, Sparpreis ticket. What are my rights?

Email Account under attack (really) - anything I can do?

How would photo IDs work for shapeshifters?

How can I add custom success page

Is there a name of the flying bionic bird?

I see my dog run

Are objects structures and/or vice versa?

A poker game description that does not feel gimmicky

What causes the sudden spool-up sound from an F-16 when enabling afterburner?

"My colleague's body is amazing"

Why is the design of haulage companies so “special”?

Can I legally use front facing blue light in the UK?

How did the USSR manage to innovate in an environment characterized by government censorship and high bureaucracy?

Map list to bin numbers

What is the command to reset a PC without deleting any files

Is this food a bread or a loaf?

What is the offset in a seaplane's hull?

What does "enim et" mean?

How can I plot a Farey diagram?

Typesetting a double Over Dot on top of a symbol

Could Giant Ground Sloths have been a good pack animal for the ancient Mayans?

Are white and non-white police officers equally likely to kill black suspects?



Is there any use for defining additional entity types in a SOQL FROM clause?


query 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;








4















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?










share|improve this question






















  • 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
    4 hours ago











  • @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
    4 hours ago

















4















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?










share|improve this question






















  • 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
    4 hours ago











  • @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
    4 hours ago













4












4








4








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?










share|improve this question














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






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 4 hours ago









Daniel BallingerDaniel Ballinger

74.4k15155406




74.4k15155406












  • 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
    4 hours ago











  • @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
    4 hours ago

















  • 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
    4 hours ago











  • @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
    4 hours ago
















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
4 hours ago





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
4 hours ago













@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
4 hours ago





@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
4 hours ago










1 Answer
1






active

oldest

votes


















2














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.






share|improve this answer























    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
    );



    );













    draft saved

    draft discarded


















    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









    2














    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.






    share|improve this answer



























      2














      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.






      share|improve this answer

























        2












        2








        2







        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.






        share|improve this answer













        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.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 3 hours ago









        Daniel BallingerDaniel Ballinger

        74.4k15155406




        74.4k15155406



























            draft saved

            draft discarded
















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            Oświęcim Innehåll Historia | Källor | Externa länkar | Navigeringsmeny50°2′18″N 19°13′17″Ö / 50.03833°N 19.22139°Ö / 50.03833; 19.2213950°2′18″N 19°13′17″Ö / 50.03833°N 19.22139°Ö / 50.03833; 19.221393089658Nordisk familjebok, AuschwitzInsidan tro och existensJewish Community i OświęcimAuschwitz Jewish Center: MuseumAuschwitz Jewish Center

            Valle di Casies Indice Geografia fisica | Origini del nome | Storia | Società | Amministrazione | Sport | Note | Bibliografia | Voci correlate | Altri progetti | Collegamenti esterni | Menu di navigazione46°46′N 12°11′E / 46.766667°N 12.183333°E46.766667; 12.183333 (Valle di Casies)46°46′N 12°11′E / 46.766667°N 12.183333°E46.766667; 12.183333 (Valle di Casies)Sito istituzionaleAstat Censimento della popolazione 2011 - Determinazione della consistenza dei tre gruppi linguistici della Provincia Autonoma di Bolzano-Alto Adige - giugno 2012Numeri e fattiValle di CasiesDato IstatTabella dei gradi/giorno dei Comuni italiani raggruppati per Regione e Provincia26 agosto 1993, n. 412Heraldry of the World: GsiesStatistiche I.StatValCasies.comWikimedia CommonsWikimedia CommonsValle di CasiesSito ufficialeValle di CasiesMM14870458910042978-6

            Typsetting diagram chases (with TikZ?) Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)How to define the default vertical distance between nodes?Draw edge on arcNumerical conditional within tikz keys?TikZ: Drawing an arc from an intersection to an intersectionDrawing rectilinear curves in Tikz, aka an Etch-a-Sketch drawingLine up nested tikz enviroments or how to get rid of themHow to place nodes in an absolute coordinate system in tikzCommutative diagram with curve connecting between nodesTikz with standalone: pinning tikz coordinates to page cmDrawing a Decision Diagram with Tikz and layout manager