问题描述
我有两个表 A 和 B。
b_id integer not null references B(id),count integer not null default 1
Postgres 有没有办法返回 A 的查询,其中 B 中的行重复了 count
次?
解决方法
是的。使用generate_series()
:
select t.*,n
from t cross join lateral
generate_series(1,t.count,1) gs(n);
以上实际上是编写逻辑的冗长方式。我更喜欢上面的内容,因为它对正在发生的事情非常明确。但是,您可以将其简化为:
select t.*,generate_series(1,1) as n
from t;