问题描述
我想将一列应用到我提取最新登录日期的用户列表。 传统上我会做这样的事情:
SELECT U.*,O.* FROM Users.Users U
OUTER APPLY ( SELECT .. FROM .. Events.Events E WHERE E.UserId = U.UserId) O
但是,BigQuery 似乎无法识别 Outer Apply 关键字。我做错了什么,上面有替代品吗?
解决方法
这种方法似乎有效:
SELECT U.*,O.*
FROM Users.Users U
LEFT JOIN UNNEST((
SELECT array_agg(STRUCT(...))
FROM Events.Events E
WHERE E.UserId = U.UserId
)) ON TRUE
当然,在您的简化情况下,您实际上并不需要 OUTER APPLY
(或标准 SQL LEFT JOIN LATERAL
)。您只需使用普通的 LEFT JOIN
。我假设您的外部应用派生表做了一些更花哨的事情,需要这个运算符。