如何使用SOQL从Salesforce合并查询Product2与PricebookEntry对象字段
合并Product2与PricebookEntry的SOQL查询方案
由于Salesforce中Product2和PricebookEntry是关联关系(PricebookEntry通过ProductId字段关联到Product2),且PricebookEntry的ProductCode字段继承自关联的Product2,你可以通过关联查询一次性获取两个对象的ID,无需分开执行两个查询。以下是两种可行方案:
方案1:从Product2出发,查询关联的PricebookEntry
该方案会返回目标产品的ID,以及所有关联的价格簿条目ID:
SELECT Id, (SELECT Id FROM PricebookEntries) FROM Product2 WHERE ProductCode = 'CUCR05RC002'
PricebookEntries是Product2到PricebookEntry的标准子查询关系名称,会返回当前产品对应的所有价格簿条目集合。
方案2:从PricebookEntry出发,关联查询Product2的ID
该方案会返回所有目标产品对应的价格簿条目ID,同时附带关联的产品ID:
SELECT Id, Product2.Id FROM PricebookEntry WHERE ProductCode = 'CUCR05RC002'
- 通过
Product2.Id可以直接跨对象访问关联产品的ID,无需额外查询。
注意事项
SOQL不支持直接对不同对象执行UNION/UNION ALL操作(仅支持同类型对象的结果合并),因此利用对象间的关联关系是合并这类查询的最优方式。
内容的提问来源于stack exchange,提问作者Idriss
相关产品推荐
相关产品推荐

