Array Expansion(数组展开)
为给定数组中的每个元素返回新行
SELECT order_id, tag
FROM Orders CROSS JOIN UNNEST(tags) AS t (tag)
Table Function
连接表和 Table Function 的结果,左(外)表中的每一行将会与调用 Table Function 所产生的所有结果中相关行进行 join。用户自定义表函数( User-defined table functions,UDTFs ) 在执行前必须先注册。
INNER JOIN
若表函数返回了空结果,左表(outer)的行将会被删除。
SELECT order_id, res
FROM Orders,
LATERAL TABLE(table_func(order_id)) t(res)
LEFT OUTER JOIN
若表函数返回了空结果,将会保留相对应的外部行并用空值填充结果。
SELECT order_id, res
FROM Orders
LEFT OUTER JOIN LATERAL TABLE(table_func(order_id)) t(res)
ON TRUE
参考:https://xie.infoq.cn/article/bf67b2eac8650e57df1ae154c