[SELECT i.Name,(SELECT Name from Line_items__r ORDER BY Name)FROM Invoice__c i 在哪里i.Name =:invoiceName LIMIT 1];
为什么需要一个i变量和括号?例如,为什么不这样做:
SELECT Name FROM Invoice__c WHERE Name =:invoiceName LIMIT 1?括号是否只是专门获取订单项的方式?
仔细阅读代码会非常有帮助,谢谢!
答案 0 :(得分:1)
以下部分是一个子查询:
SELECT Name FROM Line_items__r ORDER BY Name
这是SOQL遍历父母与子女之间关系的方式。见Using Relationship Queries。由于它是子关系,可能会返回多个子结果。括号是子查询语法的一部分。
i
变量可能不是必需的。但是,有助于从Invoice__c
记录的名称字段中消除Line_items__c
记录的名称字段的歧义。