Насчет последней части - (PARENT_ALIAS_EXPR)*, все понятно.
Для объявления aliases :
public class TestAliases1 { /** use aliases in SOQL
*
* элемент языка SOQL.
* Служит для того, чтобы к таблице в пределах данного SOQL-запроса
* можно было обращаться по другому имени.
* Обычно применяется:
* а) в целях повышения читаемости запросов
* б) в целях многократного использования одной и той же таблицы в одном запросе.
*/
Integer count = [SELECT count() FROM Contact c, c.Account a WHERE a.name = 'MyriadPubs'];
}
Что же касаемо AS - USING . Может кто сталкивался с их применением в FROM? Зачем он нужен?
Документация знает все:
http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_select_using_scope.htm#kanchor36
[USING SCOPE filterScope]
Select a.Name
From Account as a
Limit 1
Спасибо, я не так силен в SQL/SOQL как в Java, сухая запись в доке мне мало помогает
Можете привести примеры запросов? Желательно с базовыми sObjects.
И чем отличается
от просто
/* define alias inside query */
{
Account result = [SELECT a.Name
FROM Account a];
}
А в чем тут ошибка? Пример брал из документации:
пишет unexpected token: Owner
/* WHERE with IN */
Account acc16 = [SELECT Name FROM Account
WHERE CreatedById IN (SELECT
TYPEOF Owner
WHEN User THEN Id
WHEN Group THEN CreatedById
END
FROM CASE)];
только вчера напоролся на то, что в OwnerId (о котором можно подумать что это лук-ап на Юзеров) сидит вовсе на Юзерский АйДи.
к таким полям нужен свой подход...
надо бы почитать об этом подробнее
Вот http://www.salesforce.com/us/developer/docs/soql_sosl/Content/sforce_api_calls_soql_select_typeof.htm Подробнее не бывает
Штука интересная, но пока не доводилось использовать. Это когда одно поле lookup может указывать на разные типы объектов. Пока это только фишка пары стандартных полей из стандартных объектов.
Да я в курсе, и конечно читал эту документацию.
Синтаксически запрос который я привел выше - вроде правильный.
И пример кода который я привел - взят из документации. Но компилятор салесфорс выдает непонятную мне ошибку , и я не понимаю как я должен реагировать на это.
Пока что я считаю что эта ошибка семантическая , а не синтаксическая. Поскольку похоже, что TYPEOF редко кто пользуется - отложим решение на потом.