Salesforce 如何在Salesfoce中进行左内联接
salesforce架构中有两个表Salesforce 如何在Salesfoce中进行左内联接,salesforce,left-join,soql,Salesforce,Left Join,Soql,salesforce架构中有两个表 +--------------+ +-------------+ | Case | | User | |--------------| |-------------| | CaseNumber | |id | | Con
+--------------+ +-------------+
| Case | | User |
|--------------| |-------------|
| CaseNumber | |id |
| ContactId | |OwnerId |
| IsClosed | |UserName |
+--------------+ +-------------+
ContactId是一个映射到OwnerId的外键。注意两个表中的foo是如何存在的
+-------------------------------------+ +----------------------------+
| Case | | User |
|-------------------------------------| |----------------------------|
|CaseNumber | ContactId | IsClosed | | id | OwnerId | UserName |
| | | |
|1 foo false | | 42 foo bob |
|2 bar true | | 99 bar joe |
|3 foobar false | | 10 foobar sally |
| | | |
+-------------------------------------+ +----------------------------+
我想展示案例和用户之间的关系。鲍勃得了第一例,乔得了第二例。。我相信这就是所谓的一个。如果我错了,请纠正我
+-------------------------------------+
| |
| Case.CaseNumber | User.UserName |
| |
| 1 bob |
| 2 joe |
| 3 sally |
| |
+-------------------------------------+
以下是我认为SOQL查询的外观
我正在遵循Salesfoce SOQL文档中的示例
查询CaseNumber和UserName的正确语法是什么 我不确定我是否遵循了您的模式。然而,这个SOQL应该能满足您的需要
SELECT CaseNumber, Owner.Name FROM Case
这里有一个更通用的链接,可以帮助编写这样的查询
每个联系人的案例:
List<Contact> contacts = [SELECT Id, LastName, (SELECT ID FROM Cases) FROM Contact];
System.debug(contacts[0].Cases); //list of cases for first contact
if(contacts[0].Cases.isEmpty() == false)
{
System.debug(contacts[0].Cases[0].CaseNumber); //case number of first case of first contact
}
每个用户的案例数:
List<User> users = [SELECT Id, LastName, (SELECT ID FROM Cases) FROM User];
System.debug(users[0].Cases); //list of cases for the first user
if(users[0].Cases.isEmpty() == false)
{
System.debug(users[0].Cases[0].CaseNumber); //case number of first case for first user
}
其他查询:
只有已打开外壳的触点
List<Contact> contacts = [SELECT Id, LastName, (SELECT ID FROM Cases WHERE CloseDate = null) FROM Contact WHERE Id IN (SELECT ContactId FROM Cases WHERE CloseDate = null)];
我希望这对你有帮助我看到他们都准备好帮助你了,但我还是想补充一些 您可以始终使用:workbench站点 或force.com来测试您的查询
List<Contact> contacts = [SELECT Id, LastName, (SELECT ID FROM Cases WHERE CloseDate = null) FROM Contact WHERE Id IN (SELECT ContactId FROM Cases WHERE CloseDate = null)];