我是新来的Postgres - 它已经多年,因为我做了什么SQL相关的,所以我也许过思考 - 但...Postgres:WHERE IN子选择多列?
我有选择一堆的子查询ID(cs_seed
)以执行另一个查询。
我希望能够做的是维护子查询的顺序。我搜索了几个小时,发现row_number()
功能似乎很有前途,但我显然不能在WHERE IN
查询中使用它,因为它返回多个列。
SELECT ca_seed, ca_biome, ca_percent
FROM colours_area
WHERE ca_seed IN (SELECT cs_seed, row_number() OVER (ORDER BY cs_percent DESC) AS rn
FROM colours_spawn
WHERE cs_biome = 140
ORDER BY cs_percent DESC LIMIT 10)
ORDER BY rn DESC;
有没有什么办法可以做到这一点?或者我的方法错了?
不太确定为什么简单的JOIN在这里不起作用? – jcaron
IN()括号之间的选择必须只返回一列 – McNets