2015-10-09 1 views
0

J'utilise Salesforce SDK. Je veux récupérer des enregistrements en utilisant la jointure interne. J'ai 2 tables Campagne et Pièce jointe. Chaque Campagne a un seul Pièce jointe.Participer à la requête Salesforce

SELECT Campaign.CustomerName, Attachment.Body 
FROM Campaign 
INNER JOIN Attachment 
ON Campaign.Id = Attachment.ParentId 

Je fais référence au lien suivant. Mais ce ne est pas utile, je pense que

https://sivatejaforce.wordpress.com/2011/02/11/a-deeper-look-at-soql-and-relationship-queries/

+0

Quel est le problème? – Arlind

+0

Je reçois une erreur. avec cette requête –

+0

montrez-nous les tables et les colonnes – Arlind

Répondre

0

Êtes-vous la construction d'une requête SQL ou une requête SOQL?

S'il s'agit d'une requête SOQL, SQL JOIN n'existe pas.

Qu'est-ce que vous avez besoin est:

SELECT CustomerName, (SELECT Body FROM Attachments) FROM Campaign 

Cela va faire une requête « enfant » sur un champ de la relation d'attachement.

Pour vous donner un exemple de la structure de retour pour ces données JSON, il ressemblerait à ceci:

{ 
    "CustomerName":"SomeName", 
    "Attachments": [ { "Body":"someblob" }, { "Body":"someOtherBlod" } ] 
} 
+0

Si j'utilise cette requête. Il retourne Ne pas comprendre la relation 'Pièce jointe' dans la partie FROM de l'appel de requête. –

+0

Salesforce ne joint pas de tables. Il renvoie les objets associés en tant que propriétés enfant. Dans ce cas, les pièces jointes seraient une propriété de l'objet Campaign (une liste de pièces jointes). Je ne suis pas sûr comment cela ressemble quand il est désérialisé en Java, cependant la version sérialisée (JSON) devrait ressembler à mon exemple. –