2

日付項目がクエリしているオブジェクトの子に属している場合、SOQL クエリを日付でフィルタリングする際に問題が発生します。

ドキュメントには何も見つかりませんでした。2 つの異なるクエリを試しましたが、どちらも失敗しました。

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>

これは Salesforce でも可能ですか?

4

1 に答える 1

10

あなたの質問から、あなたが何をフィルタリングしようとしているのかは完全には明らかではありません。しかし、いくつかの基準に一致する日付を持つ子レコードを持つ親のリストを取得したい場合は、半結合を使用できます。

select name from parent where 
      id in (select parentId from child where date__c > :today)

子データも必要な場合は、子サブクエリを追加することもできます。

select name, (select someChildFields from child__r) from parent where 
      id in (select parentId from child where date__c > :today)

これにより、基準を持つ子を持つ親が取得され、親ごとにすべての子が取得されます。基準に一致する子のみが必要な場合は、同じ基準でサブクエリをフィルタリングすることもできます。

select name, (select someChildFields from child__r where date__c > :today) 
      from parent where id in (select parentId from child where date__c > :today)

最後に、何をしようとしているのかによっては、それを反転して子テーブルを直接クエリし、親レコードからデータを取得することもできます。

select childFields, parent__r.name from child where date__C > :today
于 2011-11-08T17:42:50.950 に答える