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

リレーションクエリの使用

SOQL を使用して、複数のリレーション種別をクエリできます。

SOQL を使用して次のリレーションのクエリを行うことが可能です。

  • 子-親リレーションのクエリを行ってください (多対一の場合が多くなります)。SELECTFROM、または WHERE 句内で、ドット (.) 演算子を使用して、これらのリレーションを直接指定してください。

    以下に例を示します。

    1SELECT Id, Name, Account.Name
    2FROM Contact 
    3WHERE Account.Industry = 'media'

    このクエリは、関連付けられた取引先の業種が「メディア」である取引先責任者に関してのみ、ID と名前を返し、そして返された各取引先責任者に関しては取引先名を返します。

  • 親-子のクエリを行ってください (それはほとんど常に一対多です)。サブクエリ内の FROM 句の初期のメンバーが外部クエリ FROM 句の初期のメンバーの場合、サブクエリ (括弧で囲まれた) を使用して、これらのリレーションを指定してください。標準オブジェクトのサブクエリでは、オブジェクトの複数形の名前が各オブジェクトのリレーション名であるため、複数形の名前を指定する必要があります。

    次に例を示します。

    1SELECT Name,
    2  (
    3    SELECT LastName
    4    FROM Contacts
    5  )
    6FROM Account

    クエリはすべての取引先に関して名前を返します。そして各取引先に関しては、取引先責任者の姓を返します。

  • 集計クエリ内の外部キーとしての親-子リレーションを辿ってください。

    次に例を示します。

    1SELECT Name,
    2  (
    3    SELECT CreatedBy.Name
    4    FROM Notes
    5  )
    6FROM Account

    このクエリは組織内の取引先を返します。そして、(結果セットが空でない場合) メモを作成したユーザ名と一緒に、取引先���関して、取引先の名前、それらの取引先用のメモを返します (メモがない場合、空の結果セットの可能性があります)。

  • 同様の例で、集計クエリ内の親-子リレーションを辿ってください:
    1SELECT Amount, Id, Name,
    2  (
    3    SELECT Quantity, ListPrice,
    4 PricebookEntry.UnitPrice, PricebookEntry.Name 
    5    FROM OpportunityLineItems
    6  )
    7FROM Opportunity

    同じクエリを使用して、(項目のデータを示す) 商品群を指定することによって、Product2 の値を得ることができます。

    1SELECT Amount, Id, Name, (SELECT Quantity, ListPrice,
    2  PriceBookEntry.UnitPrice, PricebookEntry.Name,
    3  PricebookEntry.product2.Family FROM OpportunityLineItems)
    4  FROM Opportunity
  • クエリ (サブクエリを含む) には WHERE 句を含めることができます。WHERE 句は、現在のクエリの FROM 句のオブジェクトに適用されます。これらの句は親リレーション経由で、現在の範囲 (クエリのルート要素から到達可能) のどのようなオブジェクト上でも絞り込みを行うことが可能です。

    次に例を示します。

    1SELECT Name,
    2  (
    3    SELECT LastName
    4    FROM Contacts
    5    WHERE CreatedBy.Alias = 'x') 
    6 FROM Account WHERE Industry = 'media'

    このクエリは、業種がメディアであるすべての取引先の名前を返し、返された取引先ごとに、作成者の別名が「x」のすべての取引先責任者の姓を返します。