与unnest数组和用户提供的数据发生交叉连接错误

7qhs6swi  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(266)

我想在postgres中创建一个交叉连接

SELECT * FROM (SELECT unnest(ARRAY[1,2])) AS t1(product_id)
CROSS JOIN
SELECT * FROM (SELECT unnest(ARRAY[5])) AS t2(category_id);

这会产生错误。我想不出这个问题。

ckx4rj1h

ckx4rj1h1#

查询具有不必要的嵌套级别,这最终会导致问题,因为某些派生表(即子查询)不是别名。
你可以这样说:

select t1.product_id, t2.category_id
from unnest(array[1,2]) as t1(product_id)
cross join unnest(array[5]) AS t2(category_id);
zbwhf8kr

zbwhf8kr2#

这也行

select * from 
    unnest(array[1,2]) t1(product_id), 
    unnest(array[5]) t2(category_id);

相关问题