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 を照会する正しい構文は何ですか?