リレーションクエリの使用
子-親リレーションの照会
子-親リレーション (多くの場合、多対一) を照会する場合は、ドット (.) 演算子を使用します。SELECT 句、FROM 句、または WHERE 句内で、これらのリレーションを直接指定してください。
このクエリは、関連付けられた取引先の業種が「メディア」である取引先責任者に関してのみ、ID と名前を返し、そして返された各取引先責任者に関しては取引先名を返します。
親-子リレーションの照会
親-子リレーション (多くの場合は一対多) を照会する場合は、括弧で囲まれたサブクエリを使用します。サブクエリ内の FROM 句の初期メンバーが外部クエリの FROM 句の初期メンバーである場合、サブクエリ内でこれらのリレーションを指定してください。標準オブジェクトのサブクエリでは、リレーション名は子オブジェクトの複数形の名前になります。
API バージョン 58.0 以降では、SOQL のクエリに最大 5 レベルの親-子リレーションを含めることができます。5 レベルの親-子リレーションを照会する機能は、標準およびカスタムオブジェクトに対する REST および SOAP クエリコールを介した SOQL クエリでのみ使用できます。
各リレーションで、親はクエリの第 1 レベルと見なされ、子リレーションは親ルートから最大 4 レベルの深さになります。SOQL クエリに 6 レベル以上の親-子リレーションが含まれると、エラーが発生します。
この SOQL クエリの例には、5 レベルの親-子リレーションが含まれています。
サブクエリに WHERE 句を含めると、クエリの親ルートから到達できる現在の範囲内の任意のオブジェクトで、親リレーション経由で絞り込みが実行されます。
このクエリの例では、業種がメディアであるすべての取引先の名前が返されます。返された取引先ごとに、作成者の別名が「x」のすべての取引先責任者の姓が返されます。
親-子リレーションをトラバースする SOQL クエリのバージョン管理された動作については、「リレーションクエリ制限について」を参照してください。
リレーションクエリのトラバース
親-子リレーションと子-親リレーションの両方をトラバースするリレーションクエリの例をいくつかご紹介します。
この例のクエリでは、組織のすべての取引先の名前が返されます。また取引先ごとに、取引先の各メモを作成したユーザーの名前が返されます。取引先のメモがない場合は、結果セットには何も含まれません。
以下は、親-子リレーションと子-親リレーションをトラバースするもう 1 つのクエリの例です。