Salesforce apex中的SOQL-从两种对象类型获得不匹配的结果

Salesforce apex中的SOQL-从两种对象类型获得不匹配的结果,salesforce,apex-code,soql,Salesforce,Apex Code,Soql,有人知道如何在apex中为下面的场景编写SOQL吗 有两个对象,即Countries和MappedCountries,其中Countries object将有一个完整的国家列表,MappedCountries将只有几个国家,这类似于Countries object的子集 现在我想要一个SOQL apex函数,就像我想要在Countries对象类型中的条目一样,这些条目在MappedCountries对象类型中不匹配 例如:Countries对象类型由IND-AUS-NZ-ENG组成,Mapped

有人知道如何在apex中为下面的场景编写SOQL吗

有两个对象,即Countries和MappedCountries,其中Countries object将有一个完整的国家列表,MappedCountries将只有几个国家,这类似于Countries object的子集

现在我想要一个SOQL apex函数,就像我想要在Countries对象类型中的条目一样,这些条目在MappedCountries对象类型中不匹配

例如:Countries对象类型由IND-AUS-NZ-ENG组成,MappedCountries对象类型由NZ-AUS组成,那么查询应该从IND-ENG这两个对象类型获得不匹配的结果


请帮我解决这个问题。

我想你可以试试这个:

Select Id, Name From Countries__c Where Name NOT IN (Select Name From MappedCountries)

如果它们之间没有直接的关系,我想你需要两个查询来获取数据。这是因为NOT IN喜欢返回ID的常量或子查询的显式列表,因此带有国家名称的字符串将不起作用。例如,这甚至不编译:

从帐户中选择Id、名称,其中名称不在“从联系人中选择名称”中 所以你需要这样的东西:

Set countriesToExclude=新集合; 已映射的国家/地区mc:[从映射的国家/地区中选择名称]{ countriesToExclude.addmc.Name; } List excludedCountries=[从名称不在的国家/地区中选择名称:countriesToExclude]; 如果您有一个名为Selection_uu_uC的对象,并且它有一个国家/地区记录的相关列表,那么将非常、非常容易。。。您可以简单地编写类似于此的内容,无需帐户即可返回联系人:

从AccountId=null的联系人中选择Id、名称 是的,它会起作用: