• 047_SOQL 基本查询总结


     User currentUser = [SELECT Id, Profile.Name,UserRole.Name FROM User WHERE Id = :UserInfo.getUserId()];

    在子记录中查询父记录

    实例1:

    1. Project__c pro = [SELECT Id, Name, Account__r.Name, P_Status__c, P_Plan_Complete_Date__c, P_Actual_Complete_Date__c   
    2.                           FROM Project__c   
    3.                           WHERE P_Status__c='Finishing'   
    4.                                           LIMIT 1];  


    其中Account为自定义的关系字段,Project为自定义的对象

    实例2:

    1. Opportunity opp = [select Name, Account.Name from Opportunity limit 1];  


    2、在父记录中查询相关的子记录

    1. Account acc = [select name, (select name from opportunities) from account limit 1];  
    2. system.debug('account name:' + acc.name);  
    3. List opp = acc.opportunities;  
    4. system.debug('number of opportunities:' + opp.size());  
    5. for (opportunity op : opp) {  
    6.     system.debug('opportunity name:' + op.name);  
    7. }  


    3、从junction对象里,查询与之master-details关系的两个details记录

    数据模型图如下:


    查询需求:查询会议名称日期及与之相关的发言人姓名。

    1. SELECT Session__r.Name,  
    2.        Session__r.Session_Date__c,  
    3.        Speaker__r.First_Name__c,  
    4.        Speaker__r.Last_Name__c  
    5. FROM Session_Speaker__c  
    6. ORDER BY Session__r.Session_Date__c,  
    7.          Session__r.Name  

    示例:

    1-1 、下面查询返回与Closed Won的商机相关的Account的Id和Name:

    1. SELECT Id, Name FROM Account   
    2. WHERE Id IN   
    3.   ( SELECT AccountId  
    4.     FROM Opportunity  
    5.     WHERE StageName = 'Closed Won'   
    6.   )  

    1-2、下面查询返回联系人来源于Web的商机Id

    1. SELECT Id FROM Opportunity  
    2. WHERE AccountId NOT IN   
    3.   (  
    4.     SELECT AccountId  
    5.     FROM Contact  
    6.     WHERE LeadSource = 'Web'  
    7.   )  

    1-3、下面查询返回与Closed Won商机且与LeadSource为Web的联系人相关的Account的Id和Name

    1. SELECT Id, Name, Owner.UserName  FROM Account   
    2. WHERE Id IN (SELECT AccountId FROM Contact WHERE LeadSource = 'Web')   
    3.       AND Id IN (SELECT Accountid FROM Opportunity WHERE StageName = 'Prospecting')  

    1-4、在查询语句中使用 [ORDER BY fieldOrderByList {ASC|DESC} [NULLS {FIRST|LAST}] ]
    未使用Example:

    1. SELECT Tender_Project__r.Name, Bid_Amount__c, Is_Finalists_Competitive__c, Bid_Price_Fomula__c, Supplier_Bid_Price__c, Bidding_Ranking__c, CreatedDate   
    2. FROM Advertiser_Tender_Relationship__c   
    3. WHERE Tender_Project__c = 'a0L7F000000JyMk' <span style="color:#ff0000;">ORDER BY Bidding_Ranking__c ASC</span>  

    效果预览:

    使用后Example:

    1. SELECT Tender_Project__r.Name, Bid_Amount__c, Is_Finalists_Competitive__c, Bid_Price_Fomula__c, Supplier_Bid_Price__c, Bidding_Ranking__c, CreatedDate   
    2. FROM Advertiser_Tender_Relationship__c   
    3. WHERE Tender_Project__c = 'a0L7F000000JyMk' <span style="color:#ff0000;">ORDER BY Bidding_Ranking__c ASC NULLS LAST</span>  




    此刻,静下心来学习
  • 相关阅读:
    手把手教你搭建docker-hub
    fabric可以跨链吗?
    手把手教你编译Fabric源代码
    区块链中的密码学之数字证书体系(十四)
    区块链中的密码学之默克尔树(十五)
    区块链中的密码学之数字签名方案(十二)
    区块链中的密码学之非对称密码概述(九)
    区块链中的密码学之非对称密码椭圆曲线(十三)
    在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
    从USB驱动器运行Windows 10
  • 原文地址:https://www.cnblogs.com/bandariFang/p/7991636.html
Copyright © 2020-2023  润新知