gpt4 book ai didi

postgresql - Postgres - 再次评估左侧每一行的连接

转载 作者:行者123 更新时间:2023-11-29 13:49:57 25 4
gpt4 key购买 nike

我有一个表user,其中包含我的用户信息。对于每个用户,我想生成 5 个随机 UUID 值。

我最初的想法是以下查询:

select      user.identifier, random.identifier
from user
cross join (select gen_random_uuid() identifier from generate_series(1, 5)) random

这里的问题是每个用户现在都有 相同 5 个随机 UUID。

是否可以让 Postgres 为每个用户再次评估随机交叉连接?

编辑

Postgres 不支持在 select 子句中包含多行。例如,这不起作用:

select gen_random_uuid(), (select gen_random_uuid() from generate_series(1, 5))
from generate_series(1, 5)

最佳答案

with u (identifier) as (values (1),(2))
select u.identifier, random.identifier
from
u
inner join lateral (
select gen_random_uuid() as identifier, u.identifier as u_identifier
from generate_series(1, 2)
) random on u_identifier = u.identifier
;
identifier | identifier
------------+--------------------------------------
1 | c266a1d9-ce87-4fd1-b1fb-d46601ed36d7
1 | a6cef3ea-48e4-4463-8fab-f8f9dc0535dd
2 | 3c80e12c-7fb1-4524-88e1-764dcd9049df
2 | 9d12ae5d-f4be-4330-b78e-38843c440745

关于postgresql - Postgres - 再次评估左侧每一行的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42786712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com