2011-09-04 194 views
1

我想通过Account表上的SOQL查询从自定义表WebsiteUser获取字段userhomepage。我试过10个不同的查询,但我没有得到它的工作...Salesforce SOQL关系查询问题

fe。我试过SELECT field1, (SELECT userhomepage FROM User) FROM Account所有的__c和__r组合。

我有以下结构:

<complexType name="Account"> 
<complexContent> 
    <extension base="ens:sObject"> 
    <sequence> 
    ... 
    <element name="WebsiteUser__c" nillable="true" minOccurs="0" type="tns:ID"/> 
    <element name="WebsiteUser__r" nillable="true" minOccurs="0" type="ens:WebsiteUser"/> 

而且WebsiteUser表有一个名为userhomepage一个字符串字段。 如何将它放在查询中?我完全卡住了,thnx提前!

回答

0

我假设WebsiteUser__c有一个查找到帐户,这是什么,我相信你已经发布的代码片段表示,然而那并不是”看起来像标准对象XML,所以我不是100%来自它的来源。

从WebsiteUser__c到账户的查找会创建许多网站用户到一个账户的关系。如果您是从本网站用户表中选择你会做这样的事情:

select Id, UserHomePage__c, Account__r.Name 
from WebsiteUser__c where some conditional 

查询反过来需要一个子查询:

select Id, Name, (select Id, UserHomePage__c from WebsiteUser__r) 
from Account 

这将返回一个Account所有WebsiteUser__c列表与之相关的记录,你可以运行如下结果:

for(Account sAcct : select Id, Name, 
          (select Id, UserHomePage__c from WebsiteUser__r) 
        from Account limit 200) 
{ 
    for(WebsiteUser__c sUser : sAcct.WebsiteUser__r) 
    { 
     System.Debug(sUser.UserHomePage__c); 
     // etc. 

有些事情要注意的是WebsiteUser__r可能是一个复数,即WebsiteUsers__r,如果您尝试了所有组合,但它不起作用,请检查您是否自己将__c__r放入了API对象名称中,系统会自动执行此操作以便结束以字段结尾在__c__c__r__r

如果你说什么信息你必须基于查询我可能能够使这个答案更具体一点给你!

0
SELECT id, (SELECT UserHomePage__c FROM WebsiteUser__r) FROM ACCOUNT 

if websiteUser__r is the child relation 

SELECT id, WebsiteUser__r.UserHomePage__c FROM ACCOUNT 

if websiteUser__r is the parent relation 

好像我父母的关系,所以我想以后的查询将工作...

希望帮助