码迷,mamicode.com
首页 > 其他好文 > 详细

014_SOQL 和 SOSL

时间:2017-02-17 11:14:23      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:string   put   get   account   sso   rds   asc   tac   debug   

1.SOQL: 和Sql 相似,但是更多的是限制,像Join 就不能够直接使用的,但在SOQL中融合了更多的对象(父子)间的关系,这个关系就能够代替join

 1)按照Lastname升序排,Null 在最前面

SELECT AccountId,Email,Id,LastName FROM Contact
  WHERE Email LIKE ‘%.net%‘ ORDER BY LastName ASC NULLS FIRST

 2)现在看两个例子,来具体分析下join在sql 和 soql 之间的使用方法

SQL:SELECT c.FirstName, c.LastName, a.Name FROM Account a
RIGHT JOIN Contact c ON (c.AccountId = a.Id)

  因为在soql中没有办法使用join,但可以明了的确定Account 和 Contact 之间的数据关系,即父子关系,是先有的Account,最后有Contact,每条contact都要指定一个Account。

SELECT FirstName, LastName, Account.Name FROM Contact

  特别提醒:这里的Account.Name 的Account 指的是 Account的API Name, 如果是自定的Object,就应该使用 Custome__r.Name

接收值的写法:

Account[] acctsWithContacts = [SELECT Name, (SELECT FirstName,LastName FROM Contacts)
                               FROM Account 
                               WHERE Name = ‘SFDC Computing‘];
// Get child records
Contact[] cts = acctsWithContacts[0].Contacts;
(类似于java的写法)System.debug(‘Name of first associated contact: ‘ + cts[0].FirstName + ‘, ‘ + cts[0].LastName);
 
Contact[] cts = [SELECT Account.Name FROM Contact WHERE FirstName = ‘Carol‘ AND LastName=‘Ruiz‘];

Contact carol = cts[0];

String acctName = carol.Account.Name;

System.debug(‘Carol\‘s account name is ‘ + acctName);

  

 

 

014_SOQL 和 SOSL

标签:string   put   get   account   sso   rds   asc   tac   debug   

原文地址:http://www.cnblogs.com/bandariFang/p/6380570.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!