SOQL 是Salesforce中的查询语言,他的全称是Salesforce Object Query Language。
从字面上就能够看出,这个语言是一种基于对象的查询语言。
在Salesforce中,我们能够建立对象,Salesforce中也有自己的对象,对于这些对象,可以抽象的认为这些对象就是一个个的Data Table。
每个对象下,都拥有字段的属性,而SOQL的作用就是查询各个Object 下的 Fields。
SOQL的基本语法和我们熟知的SQL并无太大区别,例如:
List<Account> accounts = [select ID from Account];
通常在APEX CODE中,SOQL都卸载[]内,而且SOQL返回得到的是List<Object>。
例句就是查询Account这个Object 下所有Account的ID。
在SOQL中,没有JOIN这一个写法,在Salesforce中Object和Object有一种关系为查找关系,也就是一对多的关系(A查找B,那么B为父,A为子)。
当2个对象拥有查找关系的时候,SOQL可以通过子查到父的信息(向上查询),或者通过父查找子的信息(向下查询)。
用Salesforce中Account 和 Contact的关系来做示例(Conatact Look Up Account)
List<Account> accounts = [select ID,Name,(select ID,Name from Contact) from Account];
这时候,我们得到一组Account并且知道每一个Account下的所有Contact信息,
在APEX CODE中我们就可以使用List<Contacts> contacts = accounts[0].Contact;
这样,我们可以再去检索contacts的信息。
我们再做一个向上查询的样例:List<Contact> contacts = [select ID,Name,Account.Name from Contact];
如此,我们可以获得不同联系人他对应自己的客户姓名信息。
今天暂时总结一下向上查询和向下查询。