3

这是我的 SOQL 问题。

查询一:

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

两个查询之间的关系是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子句中的子查询只返回一个值并且代码是一个可过滤的字段,这应该可以工作。此外,如果您尝试按同一对象(即帐户到帐户)进行过滤,这也不起作用。您可以向帐户端添加更多条件以匹配您的示例查询。

Again, this isn't a true join so you can't put the account fields from your subquery. But you can at least filter down your contacts.

于 2012-07-16T14:55:46.037 回答