Snowflake的SQL引擎可以自动识别需要使用LATERAL关键字的情况,并且在执行查询时自动添加该关键字。因此,并非每个查询都需要明确地使用LATERAL关键字。
以下是一个使用LATERAL关键字的示例:
SELECT * FROM table1 LEFT JOIN LATERAL ( SELECT * FROM table2 WHERE table1.id = table2.id ) AS subquery ON true
以下是一个不使用LATERAL关键字的等效示例:
SELECT * FROM table1 LEFT JOIN ( SELECT * FROM table2 ) AS subquery ON table1.id = subquery.id
由于这个查询中的子查询并没有引用到外部表,因此不需要使用LATERAL关键字。