2011-11-30 162 views
1

我试图在对象上写一个查询,机会,这个对象有一个子对象引号。Salesforce SOQL查询访问WHERE语句中的子字段

在引用中有一个名为Order_Ready的字段。

我需要做的是过滤所有已批准报价的机会(Order_Ready__c == true)。

这是我一直在试图获得工作机会号WHERE Opportunity.Quotes.Order_Ready__c =真

我已经尝试了一些变化查询,

选择ID,名称(选择Order_Ready__c FROM行情)这一点,

选择ID,名称(选择Order_Ready__c FROM行情)FROM WHERE机会= Quotes.Order_Ready__c真正

选择ID,名称(选择Order_Ready__c FROM行情)FROM WHERE机会Order_Ready__c = true

我不得不承认,我不是最强大的SQL/SOQL。任何洞察我的错误或误解可能是什么?

谢谢!

+0

你使用标准的Quote对象吗? –

+0

带孩子的标准机会对象行情 –

+0

好的,我更新了我的答案。 –

回答

4
SELECT Id, Name FROM Opportunity WHERE Id IN 
(Select OpportunityId FROM Quote WHERE Order_Ready__c = true) 
+0

谢谢一堆!当我执行谷歌搜索访问WHERE子句中的子对象字段时,我偶然发现了这一点(尽管为了我的目的而修改),SELECT Id,Name(SELECT Order_Ready__c FROM引用)FROM Opportunity WHERE Opportunity.Quotes.Order_Ready__c = true, Explorer不喜欢这样,在什么情况下这会工作?从我发现的例子看来,逻辑**似乎是正确的。 –