3

これが私のSOQLの問題です。

クエリ1:

Select 
  c.Date_Joined__c, 
  c.Email, 
  c.FirstName, 
  c.LastName, 
  c.regcode__c 
from Contact c WHERE c.regcode__c ='XXXXXXXXX'

クエリ2:

Select 
  p.Account__c, 
  p.Date__c, 
  p.Points__c, 
  p.Description__c, 
  p.Code__c 
from Points__c p where p.Account__c ='YYYYYYYYYYYY' and (p.Points__c > 0) 
Order by p.Date__c DESC

2つのクエリ間の関係はc.regcode__c、と同じ値になりp.Code__cます。

Query1Query2を組み合わせたいので、c.regcode__c = p.Code__c

行き詰まっていて、SOQLの構文を正しく理解できないようです。APIで結合を行うことさえ可能ですか?

4

1 に答える 1

11

結合自体を実際に作成することはできませんが、次のような構文を使用してフィルタリングを行うことができます。

SELECT Id FROM Contact WHERE c.RegCode__c IN (SELECT p.Code__c FROM Account)

句のサブクエリがWHERE単一の値のみを返し、コードがフィルター可能なフィールドである限り、これは機能するはずです。また、同じオブジェクト (つまり、アカウントからアカウント) でフィルタリングしようとしていた場合、これは機能しません。サンプルクエリに一致するように、アカウント側にさらに条件を追加できます。

繰り返しますが、これは真の結合ではないため、サブクエリからアカウント フィールドを配置することはできません。ただし、少なくとも連絡先を絞り込むことはできます。

于 2012-07-16T14:55:46.037 に答える