使用SOQL进行连接

时间:2012-07-13 19:55:54

标签: salesforce apex-code soql

这是我的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

两个查询之间的关系是c.regcode__cp.Code__c具有相同的值。

我想结合 Query1 Query2 ,以便c.regcode__c = p.Code__c

我被困了,我似乎无法获得SOQL的语法。 甚至可以在API中进行连接吗?

1 个答案:

答案 0 :(得分:9)

您无法真正创建连接本身,但您可以使用类似于此的语法进行一些过滤:

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

只要WHERE子句中的子查询只返回单个值,而代码是可过滤的字段,这应该有效。此外,如果您尝试按同一对象(即帐户到帐户)进行过滤,则此操作无效。您可以向帐户端添加更多条件以匹配您的示例查询。

同样,这不是真正的连接,因此您无法从子查询中添加帐户字段。但你至少可以过滤你的联系人。