我是新來的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