Salesforce子查询上的Where子句

Sco*_*ott 2 salesforce soql

我在按日期过滤我的SOQL查询时遇到了一些问题,其中日期字段属于我正在查询的对象的子项.

我在文档中找不到任何内容,我尝试了两个不同的查询,这两个查询都失败了:

SELECT Name, (SELECT Date__c FROM Child__r) 
FROM Parent Where Date__c >= <todays_date>

SELECT Name, (SELECT Date__c FROM Child__r) 
FROM Parent Where Child__r.Date__c >= <todays_date>
Run Code Online (Sandbox Code Playgroud)

这在Salesforce中甚至可能吗?

sup*_*ell 9

从你的问题来看,你的问题并不完全清楚.但是如果你想获得一个父母列表,这些父母的子记录的日期与某个critera匹配,那么你可以使用半连接,例如

select name from parent where 
      id in (select parentId from child where date__c > :today)
Run Code Online (Sandbox Code Playgroud)

如果您还想要子数据,也可以添加子子查询

select name, (select someChildFields from child__r) from parent where 
      id in (select parentId from child where date__c > :today)
Run Code Online (Sandbox Code Playgroud)

这将使您拥有符合条件的孩子的父母,并为每个父母获得所有孩子.如果您只想要符合条件的子项,您也可以使用相同的条件过滤子查询,例如

select name, (select someChildFields from child__r where date__c > :today) 
      from parent where id in (select parentId from child where date__c > :today)
Run Code Online (Sandbox Code Playgroud)

最后,根据您正在尝试做的事情,您还可以翻转它并直接查询子表,从父记录中提取数据,例如

select childFields, parent__r.name from child where date__C > :today
Run Code Online (Sandbox Code Playgroud)