2015-08-21 238 views
1

限制SOQL查詢結果希望這將是很容易回答:從孩子條款

select name, id, description, isactive, productcode, imageurl__c, (select name, id, unitprice,Must_Override_Price__c, Is_Taxable__c from PricebookEntries where pricebook2id =: pbe.id) from product2 

如何防止有被質疑沒有孩子pricebookentry記錄產品2的記錄?

因此可以說我有10個產品,但只有兩個匹配WHERE子句。我只想讓這兩個人出現,所以我不會浪費資源/行。

回答

1

反向執行查詢關係。您仍然可以獲取所有必需的Product2字段,並且您只會獲得現有PricebookEntry記錄的結果。

E.g.

select Id, Name, Pricebook2Id, Product2Id, UnitPrice, IsActive, UseStandardPrice, 
     ProductCode, IsDeleted, 
     Product2.Id, Product2.Name 
from PricebookEntry 
where pricebook2id = :pbe.id 
1

作爲丹尼爾的評論中提及或嘗試把你可以做反向查詢的WHERE條件頂層查詢以及

select name, id, description, isactive, productcode, imageurl__c, 
    (select name, id, unitprice,Must_Override_Price__c, Is_Taxable__c 
    from PricebookEntries 
    where pricebook2id =: pbe.id) 
from product2 
where Id IN (select Product2Id 
       from PricebookEntries 
      where pricebook2id =: pbe.id)