0

SOQL クエリが 1 つあります。クエリがリレーションシップをトラバースする場合、フィールド リストにサブクエリを含めることができます。例えば:

SELECT Account.Name, (SELECT Contact.LastName FROM Account.Contacts) FROM Account

「関係を横断する」という行が理解できませんでした。誰か説明できますか?

4

3 に答える 3

0

この場合、「1」側オブジェクトからのクエリ内の「多」側から1対多の関係を呼び出すことができることを意味します。事実上、これは、トップクエリのカーソルの現在の位置に基づいてサブテーブルをクエリするSQLのネストされたクエリに似ています。違いは主に、SQLでフラットに開始する結果セットとSOQLで階層的に開始する結果セットにあります。

さらにわかりやすくするために、このクエリは次のことを意味します。foreachアカウントのロード名とそのすべての連絡先をトラバースして、連絡先の姓を取得します。10の連絡先を持つアカウントが1つある場合、1つのプライマリ行が取得され、その連絡先リストには10​​行が含まれます

于 2011-03-31T22:10:10.357 に答える
0

関係があり、サブクエリを使用する場合、SELECT を使用して FROM 句のテーブルと関係があるテーブルからフィールドを返すことができると彼らは言っていると思います。あなたの例では、サブクエリを使用して、FROM が "Account" からプルしているにもかかわらず、"Contact" テーブルから "LastName" を返すことができます。これは、そこに関係 ("Account.Contacts") があるためです。

于 2011-03-31T13:08:10.233 に答える
0

有効な SQL ではありません。サブクエリには結合が必要です。そうしないと、複数のレコードが返されます。これは、メイン クエリの行ごとに 1 つのレコードという規則に違反します。

于 2021-11-12T19:06:20.270 に答える