Возвращать пустые записи вместо записей, найденных в Salesforce - PullRequest
0 голосов
/ 20 ноября 2018

Я работаю над мобильным приложением, использующим SalesForce Mobile SDK, и чтобы функциональность работала, я строю отображение между customer_id и соответствующим Address.Поэтому, чтобы получить сопоставление, я изменил SOQL Query, чтобы вернуть значение customer_id после выполнения запроса.

Это сопоставление отлично работает, когда найден Address.Но когда нет связанного адреса, я не получаю никакого ответа.Таким образом, для сопоставления customer_id и ввода в него нулевого адреса мне потребуется обратно customer_id, даже если адрес не найден.

Для лучшего объяснения: следующий запрос не возвращает никакого результата, поскольку адрес не найден:

SELECT Account_vod__c,Address_line_2_vod__c, City_vod__c, Name FROM Address_vod__c WHERE Account_vod__c = '001e000000qVp8WAAS'

Но я хочу создать запрос таким образом, чтобы в случае отсутствия записей он возвращал что-то вроде:

enter image description here

Ответы [ 3 ]

0 голосов
/ 20 ноября 2018

ЭТО ОТВЕТЫ НА ВОПРОС, ОСНОВАННЫЙ НА ПЕРВОНАЧАЛЬНОЙ СУБД СУБД:

SELECT a.Account_vod__c, a1.Address_line_2_vod__c, a1.City_vod__c, a1.Name
FROM (SELECT '001e000000qVp8WAAS' AS Account_vod__c) a LEFT OUTER JOIN
     Address_vod__c a1
     ON a1.Account_vod__c = a.Account_vod__c;

Если у вас более одного Account_vod__c с, используйте UNION ALL & do LEFT JOIN:

SELECT a.Account_vod__c, a1.Address_line_2_vod__c, a1.City_vod__c, a1.Name
FROM (SELECT '001e000000qVp8WAAS' AS Account_vod__c
      UNION ALL
      . . .
     ) a LEFT OUTER JOIN
     Address_vod__c a1
     ON a1.Account_vod__c = a.Account_vod__c;
0 голосов
/ 21 ноября 2018

Вложенные запросы SOQL сделали свое дело:

SELECT Id, Name,(SELECT Id, Account_vod__c, Name, Address_line_2_vod__c, City_vod__c FROM Address_vod__r)FROM Account WHERE Id = '001e0000008Ch5nAAC' LIMIT 1
0 голосов
/ 20 ноября 2018

вы можете попробовать, используя coalesce

SELECT coalesce(Account_vod__c,001e000000qVp8WAAS),
Address_line_2_vod__c, City_vod__c, Name 
FROM Address_vod__c WHERE Account_vod__c = '001e000000qVp8WAAS'
...