Содержание
Оператор CAST
CAST(X As тип)
Оператор является аналогом CAST(X As тип). Оператор выполняет преобразование типа данных.
CAST(X As *Table)
Оператор является аналогом LEFT JOIN TABLE ON TABLE.первичный_ключ=X. Позволяет искать записи в любой таблице по первичному ключу. Если ни одна строка не найдена, результатом выражения будет NULL.
Если невозможно преобразовать CAST в JOIN, платформа формирует подзапрос (SELECT ... FROM TABLE WHERE первичный_ключ=X). Например, MySQL позволяет использовать не более 60 join-ов.
CAST(X As *Table.Field)
Оператор является аналогом LEFT JOIN TABLE ON TABLE.FIELD=X. Позволяет искать записи по любому полю. Если найдено более одной записи, то строка будет продублирована в результате для каждой найденной строки. Происходит перемножение записей. Если ни одна строка не найдена, результатом выражения будет NULL.
Если невозможно преобразовать CAST в JOIN, платформа формирует подзапрос. Если этот подзапрос вернет больше одной записи, произойдет ошибка. Так что в этом случае перемножение записей невозможно.