salesforce架构中有两个表
+--------------+ +-------------+
| 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 |
| | | |
+-------------------------------------+ +----------------------------+
我想展示案例和用户之间的关系。 (例如,鲍勃有案例1,乔有案例2等。)我认为这被称为Left Inner Join。如果我错了,请纠正我。
+-------------------------------------+
| |
| Case.CaseNumber | User.UserName |
| |
| 1 bob |
| 2 joe |
| 3 sally |
| |
+-------------------------------------+
以下是我认为SOQL查询应该的样子。
SELECT Case.CaseNumber, User.OwnerId
FROM Case
WHERE Case.ContactId IN (SELECT User.OwnerId FROM User)
我正在关注Salesfoce SOQL文档中的示例 http://wiki.developerforce.com/page/A_Deeper_look_at_SOQL_and_Relationship_Queries_on_Force.com
查询CaseNumber和UserName的正确语法是什么?
答案 0 :(得分:2)
我不确定我是否在关注模式。但是,这个SOQL应该可以满足您的需求。
SELECT CaseNumber, Owner.Name FROM Case
这是一个更通用的链接,可以帮助编写像这样的查询
答案 1 :(得分:1)
每个联系人案例:
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)];
我希望有帮助
答案 2 :(得分:0)
我看到他们都准备好了帮助你,但我还想添加一些东西......
您始终可以使用:workbench site
https://workbench.developerforce.com/login.php?startUrl=%2Fquery.php
或force.com来测试您的查询