如何在SalesForce中用SOQL关联Account与Intake__c表?
SOQL表关联报错解决方法
你遇到的问题是因为SOQL不支持SQL标准的JOIN ... ON语法,Salesforce的查询语言有自己的关联查询规则,下面给你几种实现INNER JOIN效果的正确写法:
写法1:交叉查询+WHERE条件(最接近传统INNER JOIN)
这种方式通过同时查询两张表,用WHERE条件匹配关联字段,实现内连接效果,适合需要同时获取两张表字段的场景:
SELECT a.Name, i.Client_Id__c, i.Intake_Id__c, i.Intake_Name__c, i.Intake_Status__c FROM Intake__c i, Account a WHERE i.Client_Id__c = a.Id
写法2:子查询(仅需Account的Name字段)
如果你的需求只是获取关联的Account名称,不需要Intake__c的其他字段,可以用更简洁的子查询:
SELECT Name FROM Account WHERE Id IN (SELECT Client_Id__c FROM Intake__c)
写法3:子查询嵌套在SELECT中
如果需要从Intake__c出发,同时带出关联的Account名称,可以用这种嵌套子查询的方式:
SELECT Client_Id__c, (SELECT Name FROM Account WHERE Id = Client_Id__c) AS AccountName, Intake_Id__c, Intake_Name__c, Intake_Status__c FROM Intake__c
注意点
- SOQL中表别名的使用和SQL一致,用
表名 别名或者表名 AS 别名都可以 - 确保
Intake__c.Client_Id__c字段的类型是Lookup或Master-Detail关联到Account,否则关联可能会有数据不匹配的问题
内容的提问来源于stack exchange,提问作者Yara1994
相关产品推荐
相关产品推荐

