В настоящее время Salesforce допускает только один уровень вложенных запросов. Это тростниковый быть сделано так:
[SELECT ID, Name, Field1 from Object__c WHERE Id IN (SELECT Id FROM Object2__c WHERE Field2 = 'SomeValue')]
Однако, с целью перехода вы делаете на самом деле не нужно использовать вложенный запрос.
К сожалению, ваше описание недостаточно ясно, чтобы понять вашу конкретную настройку объекта, поэтому я собираюсь сделать некоторые предположения.
У вас есть три объекта: Accounts__c (ваши пользовательские учетные записи Objct), PersonAccount__c (ваш объект соединения) и учетная запись (объекты учетной записи по умолчанию).
Объект PersonAccount__c содержит два поля поиска (для истинного соединения, они должны быть Master-Detail). Первый - Accounts__c (назовем это lup_cust_accounts__c). Второй - для учетной записи (мы будем называть это lup_account__c). [В стороне это действительно плохая идея иметь объект Accounts and Account. Это приведет к тому, что Salesforce автоматически произведет плюрализацию слов, а затем вы будете в замешательстве относительно того, что есть.]
Salesforce позволяет искать точки в SOQL-запросах. Так что если вы хотите получить идентификатор и имя из пользовательских учетных записей объектов, когда имя связанного объекта банковского счета, как «тест», вы можете сделать следующее:
[SELECT lup_cust_accounts__r.Id, lup_cust_accounts__r.Name FROM PersonAccount__c WHERE lup_account__r.Name LIKE 'Test%'];
Обратите внимание на двойное подчеркивание г вместо двойного подчеркивания гр? Так вы указываете ссылку (lookup), а не конкретное значение поля.