3

salesforce スキーマには 2 つのテーブルがあります

               +--------------+      +-------------+
               |   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       |
  |                                     |        |                            |
  +-------------------------------------+        +----------------------------+

ケースとユーザーの関係を示したいと思います。(例: bob は case 1、joe は case 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 を照会する正しい構文は何ですか?

4

3 に答える 3

2

スキーマであなたをフォローしているかどうかはわかりません。ただし、この SOQL は必要なものを提供するはずです。

SELECT CaseNumber, Owner.Name FROM Case

これは、このようなクエリを作成するのに役立つ、より一般的なリンクです

http://www.salesforce.com/us/developer/docs/soql_sosl/

于 2013-08-13T19:11:08.260 に答える
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)];

それが役立つことを願っています

于 2013-08-15T05:47:32.730 に答える
0

それらはすべてあなたを助ける準備ができているようですが、まだ何かを追加したかったのです...

:workbench サイトはいつでも使用できます

https://workbench.developerforce.com/login.php?startUrl=%2Fquery.php

または force.com でクエリをテストします

于 2014-12-17T14:28:27.113 に答える