我有一个名为Edition的sObject,它有相关的PriceBook id,在查询Edition详细信息时如何获取PriceBook的项目:
我尝试过的:
query = f"""
SELECT
Id,
Name,
Edition_Name__c,
End_Date__c,
Start_Date__c,
Legal_Entity__c,
CurrencyIsoCode,
Status__c,
Price_Book__c,
(SELECT Id, Name FROM PricebookEntry WHERE Pricebook2Id = Price_Book__c)
FROM Edition__c
WHERE Id = '{edition_id}'
# """
如果该字段是真正的查找,您应该能够一次性执行 JOIN。如果它只是一个文本字段,并且恰好包含与价目表 ID 匹配的值 - 您将需要 2 个查询。
当你运行这个时你会得到什么?
SELECT Name, ProductCode, UnitPrice
FROM PricebookEntry
WHERE Pricebook2Id IN (SELECT Price_Book__c FROM Edition__c WHERE Id = '...')
如果您知道“关系名称”,甚至可以尝试对主题进行一些变化
SELECT Id, Name,
(SELECT Name, ProductCode, UnitPrice FROM PricebookEntries),
(SELECT Name, Start_Date__c FROM Editions__r)
FROM Pricebook2
WHERE Id IN (SELECT Price_Book__c FROM Edition__c WHERE Id = '...')