この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

リレーションクエリ制限について

SOQL リレーションクエリを設計する場合、複数の制限を考慮する必要があります。
  • リレーションクエリは SQL 結合と同じではありません。SOQL 内で結合を作成するためには、オブジェクト間のリレーションを持つ必要があります。
  • 1 回のクエリに指定できる子-親リレーションは、35 個以下です。カスタムオブジェクトには最大 25 個のリレーションが許可されているため、1 回のクエリでカスタムオブジェクトのすべての子-親リレーションを参照できます。
  • 1 回のクエリに指定できる親-子リレーションは、20 個以下です。
  • 指定された各リレーションで、1 つの子-親リレーションに指定できるレベルは 5 つ以下です。たとえば、Contact.Account.Owner.FirstName は 3 レベルです。
  • 各指定リレーション内で、親-子リレーションの 1 つのレベルだけが 1 つのクエリ内で指定可能です。たとえば、FROM 句が Account を指定している場合、SELECT 句では Contact かそのレベルの他のオブジェクトのみを指定できます。Contact の子オブジェクトを指定することはできません。
  • 情報を得るために、メモと添付ファイルをクエリすることは可能ですが、メモと添付ファイルの内容を絞り込むことはできません。オブジェクト内の textarea 項目、BLOB、または Scontrol コンポーネントの内容に対しての絞り込みはできません。たとえば、次のクエリは有効で、取引先と関連付けられたあらゆるメモに関して、すべての取引先名と所有者 ID を返します。
    1SELECT Account.Name, (SELECT Note.OwnerId FROM Account.Notes) FROM Account
    ただし、次のクエリは、メモの本文に保存された情報の評価を試みているため、有効でありません。
    1SELECT Account.Name, (SELECT Note.Body FROM Account.Notes WHERE Note.Body LIKE 'D%') FROM Account

    WHERE 句を削除すると、クエリは有効になり、メモの本文の内容が返されます。

    1SELECT Account.Name, (SELECT Note.Body FROM Account.Notes) FROM Account
  • 外部オブジェクトについては、次の制限を考慮します。
    • 外部オブジェクトが含まれるサブクエリが取得できるデータは、最大 1,000 行です。
    • 各 SOQL クエリ内の結合は、外部オブジェクトとその他の種別のオブジェクト全体で最大 4 個です。

      クエリの実行時、結合ごとに外部システムへの往復処理が必要です。クエリ内の各結合に対して長めの応答時間を想定してください。

    • 外部オブジェクトは、リレーションクエリの ORDER BY 句をサポートしません。この制限は、Salesforce Connect の OData 2.0 アダプタを介して外部データにアクセスする場合にのみ適用されます。
    • SELECT ステートメントの主オブジェクト (「主導」オブジェクト) が外部オブジェクトの場合、queryMore() は主オブジェクトのみをサポートし、サブクエリをサポートしません。